我使用三元运算符很多,但我似乎无法将多个三元运算符堆叠在一起.
我知道堆叠多个三元运算符会使代码的可读性降低,但在某些情况下我想这样做.
这是我到目前为止所尝试的:
$foo = 1;
$bar = ( $foo == 1 ) ? "1" : ( $foo == 2 ) ? "2" : "other";
echo $bar; // display 2 instead of 1
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
当我做 -
echo "Hello ". (true) ? 'World' : 'XYZ';
Run Code Online (Sandbox Code Playgroud)
输出 - World而不是Hello World.但当 -
$person = (true) ? 'World' : 'XYZ';
echo "Hello ".$person;
Run Code Online (Sandbox Code Playgroud)
输出 - Hello World这是预期的.不明白为什么这样做!这是预期的吗?