Thanks, gents. It’s been a while and I’m a bit rusty. That new coalesce operator is slick.
> On 5 Jul 2016, at 23:50, Richard K Miller <[email protected]> wrote: > > Accessing a non-existent key returns a null, and then the null is assigned to > $a. > > If you use an intermediate value, it illustrates that there's no way for the > assignment statement to "know" that the R-value (value on the right side of > the equal sign) evaluated to null -- and probably threw a NOTICE -- before > being assigned. Null "erases" the original value as opposed to passing over > it invisibly. > > $a = $numbers['a']; > $d = $numbers['d']; // $d is now null > $a = $d; // $a is now null > > By the way, if you're using PHP 7 you can use the null coalesce operator, > whereby this: > > $a = isset($numbers['d']) ? $numbers['d'] : $a; > > Becomes this: > > $a = $numbers['d'] ?? $a; > > Richard > > On Tue, Jul 5, 2016 at 10:27 PM Wade Shearer <[email protected]> wrote: > Consider this: > > > $numbers = array('a' => 1, 'b' => 2, 'c' => 3); > > $a = $numbers['a']; > $a = $numbers['d']; > > > I would expect $a to equal 1. Since the key ‘d’ doesn’t exist, I would expect > the value of $a to not change. It is set to blank though. Any explanation why > this happens? > > Thanks. > > _______________________________________________ > > UPHPU mailing list > [email protected] > http://uphpu.org/mailman/listinfo/uphpu > IRC: #uphpu on irc.freenode.net _______________________________________________ UPHPU mailing list [email protected] http://uphpu.org/mailman/listinfo/uphpu IRC: #uphpu on irc.freenode.net
