空字符串不等于PHP三元运算符表达式中的空字符串

时间:2017-12-09 08:45:49

标签: php string ternary-operator is-empty

有人可以解释一下以下内容吗?

$a="";

$a="" ? "" : "muh";

echo $a; 
// returns muh

1 个答案:

答案 0 :(得分:1)

看起来您正在尝试使用Comparison operator ==,而是使用Assignment operator =

您的代码正在尝试为$a分配表达式"" ? "" : "muh"的结果。空字符串的计算结果为false$a的值为muh

让我们用一些括号使其更加明显:

//$a equals (if empty string then "" else "muh")
$a = ("" ? "" : "muh");

echo $a; // muh


//$a equals (if $a is equal to empty string then "" else muh)
$a = ($a == "" ? "" : "muh"); 

echo $a; //