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