Re: How to detect classes with a count_elements handler in userland?
| From: | Nikita Popov | Date: | Wed, 16 Nov 2016 21:02:45 +0000 |
| Subject: | Re: How to detect classes with a count_elements handler in userland? | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-96936@lists.php.net to get a copy of this message | ||
On Mon, Nov 14, 2016 at 2:22 PM, Christoph M. Becker <cmbecker69@gmx.de>
wrote:
> On 13.11.2016 at 22:10, Craig Duncan wrote:
>
> >> How about just making those classes implement the interface instead?
> >
> > Christoph pointed out that there may be classes in extensions that use
> > count_elements.
>
> Furthermore, letting those classes implement Countable could break BC.
>
How would this break BC?
SXE even already has a count() method, and count_elements respects
overrides of that method. Clearly SXE is supposed to implement Countable,
it was simply forgotten.
> Also it would make userland code simpler:
> > is_countable($thing)
> > vs
> > is_array($thing) || $thing implements \Countable
>
> Good catch!
>
> Note that Craig has added is_countable() to PR #2185 (which implements
> the RFC). In my opinion, that is okay, but if anybody has objections,
> we probably need another RFC.
>
This should be done as a separate change IMHO.
Nikita