Re: Re: isset($a->b) even if $a->b = null
| From: | Olav Mørkrid | Date: | Fri, 17 Aug 2007 12:11:39 +0000 |
| Subject: | Re: Re: isset($a->b) even if $a->b = null | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-260954@lists.php.net to get a copy of this message | ||
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
>
>