Re: Possible Bug or Bad Expectations?

From: Date: Sun, 12 Jul 2015 00:14:17 +0000
Subject: Re: Possible Bug or Bad Expectations?
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-87114@lists.php.net to get a copy of this message
On Sun, Jul 12, 2015 at 2:52 AM Ralph Schindler <ralph@ralphschindler.com> wrote: > Hi all, > > I am conflicted as per if what I experience in this code should be > throwing a notice in E_STRICT: > > http://3v4l.org/srm5f > > <?php > error_reporting(E_ALL); > $foo = ['bar' => ['baz' => 5]]; > $bar = ['box' => 'baz']; > > // this will Notice: Undefined index: boom > var_dump(isset($foo['bar'][$bar['boom']])); > > > Essentially, my expectation is that anything inside an isset() would be > immune from notices of undefined indexes, but that is not the case with > nested array key lookups. > You're not getting a notice for the undefined index $foo['bar'][null], that's basically what isset() is made to do. If you want to guard against undefined indices in an array that you're using to dereference $foo you need this: var_dump(isset($bar['boom'], $foo['bar'][$bar['boom']])); > > Is this a bad expectation to have? Or should isset() silence the nested > undefined index as well? I also realized this has always been the > behavior leading me to believe I might have a bad expectation here. In > any case wanted to check. > > Thanks, > -ralph > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.internals (#87114) next »