dan*_*ner 9 php syntax parse-error
如果语句与echo结合使用,我会写一行代码:
<?php echo ( true ) ? 'true' : 'false'; ?>
Run Code Online (Sandbox Code Playgroud)
今天我确实改变了现有的多行if语句,并在语句中echo结束了,这给了我一个解析错误:
<?php ( true ) ? echo 'true' : echo 'false'; ?>
Run Code Online (Sandbox Code Playgroud)
但是,使用print而不是echo使其工作.我觉得它有效,因为它print是一个功能.更新:print不是一个函数,它只是表现得像一个,这意味着它有一个返回值.
<?php ( true ) ? print 'true' : print 'false'; ?>
Run Code Online (Sandbox Code Playgroud)
我不明白的是回声不起作用的原因.据我所知,上面的语法只是一个常见的if语句的简写,所以这不应该工作:
if (true) echo 'true'; else echo 'false';
Run Code Online (Sandbox Code Playgroud)
但确实如此.谁知道?
正如您在问题中只提到的那样,这print是一个函数,但print 不是一个函数,但它有一些返回值,这就是为什么它也可以在表达式中使用,但另一方面echo没有任何返回值。
还要记住三元运算符返回一个值。
“在类似 C 的语言中,语句和表达式之间是有区别的。从语法上讲,echo 是一个(简单)语句,如 break 或 return,而 print 是一个(一元)运算符,如“!”或“~”。因此,就像任何其他语句,echo 不能成为表达式的一部分”
PHP 将 echo 视为一条语句。无论您编写什么内容,都将按原样显示。
你可以在这里阅读详细的解释参考:Comparing PHP's print and echo