On Sat, Sep 19, 2015 at 5:29 PM, Lester Caine <les...@lsces.co.uk> wrote:
> On 19/09/15 22:56, Rowan Collins wrote: > >>> If what you want to do is avoid the notice, then you don't need to > >>> "find out before calling is_null", you need to call isset *instead > >>> of* is_null. Again, ignore the name, and concentrate on what it > >>> actually does. > >> BUT ISSET RETURNS FALSE FOR A VARIABLE THAT IS SET BUT NULL ... END OF > >> STORY ... > > > > AND SO DOES IS_NULL > > > > The notices emitted by is_null are COMPLETELY IRRELEVANT. > > ? is_null returns true if the variable exists and is NULL and throws a > notice if the variable is not set WHY is that fact COMPLETELY > IRRELEVANT? Just because you don't think people should be coding in the > way that it causes problems with existing code does not make it > irrelevant we have to put up with the notices because there is no CLEAN > way to establish that a variable exists only that it is set. > I would also point out that is_null returns true (after the engine produces a notice) for undefined variables: $ php -r "var_dump(is_null($a));" Notice: Undefined variable: a in Command line code on line 1 Call Stack: 0.0001 118888 1. {main{() Command line code:0 *bool(true)* So is_null does not help to determine if a plain variable is in fact null.