Mon*_*nir 4 php ternary-operator
$chow = 3;
echo ($chow == 1) ? "one" : ($chow == 2) ? "two" : "three";
Run Code Online (Sandbox Code Playgroud)
输出:三
$chow = 1;
echo ($chow == 1) ? "one" : ($chow == 2) ? "two" : "three";
Run Code Online (Sandbox Code Playgroud)
输出:两个
任何人都可以解释为什么当$ chow = 1而不是"one"时输出是"两个"?
Riz*_*123 12
这是因为三元运算符(?:)是左关联的,所以这就是它的评估方式:
((1 == 1) ? "one" : (1 == 2)) ? "two" : "three"
Run Code Online (Sandbox Code Playgroud)
所以1 == 1- > TRUE意味着它是:
"one" ? "two" : "three"
Run Code Online (Sandbox Code Playgroud)
并且"one"- > TRUE所以输出将是:
two
Run Code Online (Sandbox Code Playgroud)
$chow = 1;
echo ($chow == 1) ? "one" : (($chow == 2) ? "two" : "three");
Run Code Online (Sandbox Code Playgroud)
记得在操作结果不清楚时使用括号
现在输出是一个
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |