//In PHP,
$a ? $b : echo $c //does not work but
$a ? $b : print $c //works
これには理由がありますか?
ところで、notPHPのキーワードですか?
echo は関数ではなく、言語構造です。何も返しません。別のvoid関数は常に "return" しNULLます。これが、コンパイラがエラーをスローする理由unexpected T_ECHOです。
printfただし、 は関数であり、常に を返します1。
たとえば、これは機能します:
function echo2($e)
{
echo($e);
}
$a ? $b : echo2('foo');
notPHPにはキーワードがありません
echo は言語構造で、print は関数だからですか?
戻り値。あなたが書いた場合
$x = $a?$b:echo $c;
$a が false の場合、$x はどのような値になりますか?
print は常に 1 を返します。echo は何も返しません。