//In PHP,
$a ? $b : echo $c //does not work but
$a ? $b : print $c //works
这是否有原因?
BTW,PHP中的关键字是not
吗?
答案 0 :(得分:2)
echo
不是函数,它是语言构造。它不会返回任何内容。另一个void
函数始终“返回”NULL
。这就是编译器抛出错误unexpected T_ECHO
的原因。
printf
是一个函数并始终返回1
。
例如,这将起作用:
function echo2($e)
{
echo($e);
}
$a ? $b : echo2('foo');
答案 1 :(得分:1)
echo
没有返回值,print
没有!
void echo ( string $arg1 [, string $... ] )
int print ( string $arg )
来自php.net
这种情况很重要,因为三元运算符需要表达式
(expr1) ? (expr2) : (expr3)
echo "something"
不能归类为表达式。
not
不是PHP keyword。
答案 2 :(得分:0)
PHP中没有not
个关键字
答案 3 :(得分:0)
是因为echo是语言结构而print是一个函数吗?
答案 4 :(得分:-1)
返回值。 如果你写了
$x = $a?$b:echo $c;
$ x得到什么价值$ a是假的?
print始终返回1。 echo不会返回任何内容。