Re: Re: isset($a->b) even if $a->b = null

From: Date: Fri, 17 Aug 2007 12:17:55 +0000
Subject: Re: Re: isset($a->b) even if $a->b = null
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-260955@lists.php.net to get a copy of this message
the solution has been found. array_key_exists() can actually be used on objects, and yields the correct result. http://no.php.net/array_key_exists thanks to dordea cosmin for pointing this out. On 17/08/07, Olav Mørkrid <olav.morkrid@gmail.com> wrote: > the test i need should give the following results: > > - FALSE when $a->b does not exist at all > - TRUE when $a->b = null > - TRUE when $a->b = <any value> > > empty() gives true for both $a->b = null and not setting any value, so > that's no good. > > borokovs suggestion seems to miss the purpose. > > anyone else? > > On 17/08/07, Colin Guthrie <gmane@colin.guthr.ie> wrote: > > Olav Mørkrid wrote: > > > how do i test if a property of a stdclass object is set, even if its > > > value is null, similar to how array_key_exists() works for arrays. > > > > > > the following method fails: > > > > > > $a->b = null; > > > if(isset($a->b)) > > > echo "yes"; > > > > > > and property_exists() seems only to work for defined objects. > > > > > > hope someone can help. thanks! > > > > You can try: > > unset($a-b) > > > > Or change isset() to empty(). > > > > empty() catches more than isset() e.g. '' (empty string), false, 0 etc. > > are considered "empty". Depending on your logic it can still be very > > useful. It is a language construct rather than a function so it's also > > efficient. > > > > Col > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > >

« previous php.general (#260955) next »