Sent from my iPad

在 2012-4-11,6:54,Nikita Popov <nikita....@googlemail.com> 写道:

> Hey internals!
>
> Currently the empty() language construct only works on variables. You
> can write if (empty($array)) but not empty if (empty(getSomeArray()).
>
> The original reason for this restriction probably is that - in a way -
> it "doesn't make sense" to pass anything but a variable to empty() as
> you could just use the ! operator in this case. if
> (empty(getSomeArray())) is logically equivalent to if
> (!getSomeArray()).
>
> I'd like to propose to change empty() to accept arbitrary expressions.
>
> The reason is simple: Even though it is possible to write if
> (!getSomeArray()) with the same effect, if (empty(getSomeArray()))
> reads much nicer. !getSomeArray() to me somehow implies that
> getSomeArray() may return a bool(false) or something like that. On the
> other hand empty(getSomeArray()) seems naturally fit for checking for
> empty arrays.
+1 for this, but what about is set? They shou be consistent, :)

Thanks
>
> Another reason is that currently you get a very obscure error message
> if you try to use empty() on a function return value: "Can't use
> function return value in write context". Aha. Where did I try to write
> to the return value?!
>
> So, what do you think?
>
> Nikita
>
> PS: The patch is trivial: https://gist.github.com/2355274
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to