[wp-trac] [WordPress Trac] #44123: Utilize `is_countable()` and `is_iterable()` Polyfills
WordPress Trac
noreply at wordpress.org
Mon May 21 06:40:13 UTC 2018
#44123: Utilize `is_countable()` and `is_iterable()` Polyfills
----------------------------+---------------------
Reporter: desrosj | Owner: (none)
Type: task (blessed) | Status: new
Priority: normal | Milestone: 4.9.7
Component: General | Version:
Severity: normal | Resolution:
Keywords: close | Focuses:
----------------------------+---------------------
Changes (by johnbillion):
* keywords: needs-patch => close
Comment:
This is an important point by @jrf.
The `is_countable()` function should only be used before counting a value
where it's ''valid'' for either a countable or non-countable value to be
passed. Avoiding counting non-countable values where only countable values
are expected will definitely introduce bugs. The same goes for
`is_iterable()` and iterable values. See discussion on #42814 and #42860
as examples.
There's an inherent expectation in the hooks and filters API that the
return values of filters are of the correct type, and core shouldn't
silence warnings about non-iterable values being iterated, or non-
countable values being counted, because this can mask bugs introduced by
plugins.
PHP warnings are there for a reason and are not something to be avoided at
all costs. If a non-countable/iterable value is passed to a piece of code
where one is expected, it is correct behaviour for a PHP warning to be
triggered.
I think this meta ticket should be closed in favour of individual tickets
where it's been demonstrated that core is attempting to count/iterate a
value where it's valid for that value to either be countable/iterable or
not (which I'd hope is not very common).
--
Ticket URL: <https://core.trac.wordpress.org/ticket/44123#comment:11>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list