PHP 5.3 has a shorthand ?:
operator:
$foo = $bar ?: $baz;
Which assigns $bar
if it's not an empty value (I don't know how this would be different in PHP from Perl), otherwise $baz
, and is the same as this in Perl and older versions of PHP:
$foo = $bar ? $bar : $baz;
But PHP does not have a compound assignment operator for this (that is, no equivalent of Perl's ||=
).
Also, PHP will make noise if $bar
isn't set unless you turn notices off. There is also a semantic difference between isset()
and empty()
. The former returns false if the variable doesn't exist, or is set to NULL
. The latter returns true if it doesn't exist, or is set to 0
, ''
, false
or NULL
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…