Re: [RFC] Allow non-variable arguments to empty() and isset()
| From: | Herman Radtke | Date: | Thu, 03 May 2012 20:29:29 +0000 |
| Subject: | Re: [RFC] Allow non-variable arguments to empty() and isset() | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-60438@lists.php.net to get a copy of this message | ||
>> I just can't help feeling that it is the wrong use of both. If the function
>> is returning a value, then it's returning a value that needs to be used
>> somewhere so the work flow handles that. If the function returns nothing
>> instead that just seems wrong and needs to be handled better. I'm used to
>> getting back 'false' if the function failed and just check for that so why
>> would there be any logical reason for using isset or empty to check a
>> function return?
>
> Use case:
>
> // Function definition:
> function getFriends()
> {
> // SQL SELECT or Fetching from XML or Fetching from LDAP or ....
> return $resultsAsArray;
> }
>
> // Looping on results:
> foreach ( getFriends() as $friend )
> {
> echo $friend["name"], "\n";
> }
>
> // Case where the results are actually not iterated:
> $amIAssocial = empty( getFriends() );
This is the exact same thing:
$amIAssocial = !getFriends();
Earlier, I sent this to Lester only:
Most people don't realize that an empty array is already falsy so they
feel the need to use empty. That is the only use-case the RFC gives
for making this change. From the RFC: "For example if func() is
expected to return an array, it feels more natural to verify it's
emptiness using empty() instead of !."
--
Herman Radtke
hermanradtke@gmail.com | http://hermanradtke.com