Re: [DISCUSSION] Make empty() a Variadic
| From: | Andrea Faulds | Date: | Fri, 13 Feb 2015 11:31:38 +0000 |
| Subject: | Re: [DISCUSSION] Make empty() a Variadic | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-82602@lists.php.net to get a copy of this message | ||
> On 13 Feb 2015, at 11:16, Andrea Faulds <ajf@ajf.me> wrote:
>
> Hey,
>
>> On 13 Feb 2015, at 07:28, Michael Wallner <mike@php.net> wrote:
>>
>> On 12/02/15 19:55, Thomas Punt wrote:
>>
>>> I'd like to propose to make empty() a variadic, where if any
>>> arguments passed in are considered empty, then false is returned
>>
>> Should that read "if any arguments passed in are considered *NOT* empty,
>> then false is returned”?
>
> No, I think it’s correct, if confusingly phrased. I believe Thomas is proposing variadic
> empty() where TRUE is returned if any of its arguments are empty, otherwise FALSE. So, empty($a, $b,
> $c) would be equivalent to empty($a) || empty($b) || empty($c), much like isset($a, $b, $c) is
> equivalent to (and implemented as) isset($a) && isset($b) && isset($c).
Wait, I think I made a mistake.
* Thomas proposed "if any arguments passed in are considered empty, then false is returned”,
i.e. !(empty($a) || empty($b) || empty($c)) if his words are taken literally. This doesn’t make
much sense, I think it was a mistake.
* You suggested he may have meant "if any arguments passed in are considered *NOT* empty, then
false is returned”, i.e. (empty($a) && empty($b) && empty($c))
* I assume Thomas actually meant “where if any arguments passed in are considered empty, then
*true* is returned”, i.e. (empty($a) || empty($b) || empty($c))
Sorry for the confusion.
I think the || behaviour is the most useful, as it’s the analogue of isset’s. So !empty($a, $b,
$c) would work similarly to isset($a, $b, $c), and similarly, !isset($a, $b, $c) would work
similarly to empty($a, $b, $c).
But that’s just my opinion. :)
--
Andrea Faulds
http://ajf.me/