与Ternary Logic有一种奇怪的行为

Sou*_*ose 1 php ternary-operator

当我做 -

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这是预期的.不明白为什么这样做!这是预期的吗?

xda*_*azz 10

echo "Hello ". (true) ? 'World' : 'XYZ';
Run Code Online (Sandbox Code Playgroud)

和...一样

echo ("Hello ". (true)) ? 'World' : 'XYZ';
Run Code Online (Sandbox Code Playgroud)

你需要:

echo "Hello ". (true ? 'World' : 'XYZ');
Run Code Online (Sandbox Code Playgroud)