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

是否有一个原因?

顺便说一句,是notPHP 中的关键字吗?

4

5 回答 5

2

echo 不是函数,而是语言构造。它不返回任何东西。另一个void函数总是“返回” NULL。这就是编译器抛出错误的原因unexpected T_ECHO

printf但是,它是一个函数并且总是返回1

例如,这将起作用:

function echo2($e)
{
    echo($e);
}

$a ? $b : echo2('foo');
于 2010-03-10T09:50:21.600 回答
1

echo没有返回值,print有!

 void echo  ( string $arg1  [, string $...  ] )

 int print  ( string $arg  )

来自php.net

这在这种情况下很重要,因为三元运算符需要表达式

(expr1) ? (expr2) : (expr3)

echo "something"不能归类为表达式。

not不是PHP 关键字

于 2010-03-10T09:47:40.587 回答
0

是因为 echo 是一种语言结构而 print 是一种功能吗?

于 2010-03-10T09:51:29.380 回答
0

PHP中没有not关键字

于 2010-03-10T09:48:35.877 回答
-1

返回值。如果你写

  $x = $a?$b:echo $c;

如果 $a 为假,$x 会得到什么价值?

print 总是返回 1。 echo 不返回任何内容。

于 2010-03-10T09:45:09.837 回答