$ a? $ b:echo $ c不起作用但$ a? $ b:print $ c在PHP中运行

时间:2010-03-10 09:41:27

标签: php printing echo

//In PHP,
$a ? $b : echo $c  //does not work but 
$a ? $b : print $c //works

这是否有原因?

BTW,PHP中的关键字是not吗?

5 个答案:

答案 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不会返回任何内容。