PHP是否与|| =运算符等效?

前端之家收集整理的这篇文章主要介绍了PHP是否与|| =运算符等效?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只想分配一个尚未分配的变量.执行以下操作的 PHP方式是什么?
$result = null;
$result ||= check1();
$result ||= check2();
$result ||= "default";

我检查了standard operatorsis_null功能,但似乎没有一种简单的方法来执行上述操作.

isset()是通常的做法:
if (!isset($blah)) {
  $blah = 'foo';
}

注意:您可以为变量赋值null,它将被分配.这将产生与isset()和is_null()不同的结果,因此您需要明确“未分配”的含义.请参阅Null vs. isset().这也是需要注意自动类型转换的一种情况,这意味着使用!= / ==或=== /!==取决于所需的结果.

你也可以使用布尔速记(这就是Perl || =运算符).从PHP 5.2.x开始,没有像你这样的操作符.在Perl中:

$a ||= $b;

相当于:

$a = $a || $b;

您可以在PHP中执行第二种形式,但PHP有一些关于type juggling的时髦规则.请参阅Converting to boolean

When converting to 07005,the
following values are considered FALSE:

  • the 07005 FALSE itself
  • the 07007 0 (zero)
  • the 07008 0.0 (zero)
  • the empty 07009,and the 07009 “0”
  • an 070011 with zero elements
  • an 070012 with zero member variables (PHP 4 only)
  • the special type 070013 (including unset variables)
  • 070014 objects created from empty tags

Every other value is considered TRUE (including any resource).

之后:

$a = 0;
$a = $a || 5;

$a等于5.同样:

$a = 0;
$b = '';
$c = $a == $b; // true
$d = $a === $b; // false

你必须注意这些事情.

猜你在找的PHP相关文章