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