[英]Use echo inside php one line if statement
如果语句与echo结合使用,我会写一行代码:
<?php echo ( true ) ? 'true' : 'false'; ?>
今天我确实改变了现有的多行if语句,并且echo
在语句中结束,这给了我一个解析错误:
<?php ( true ) ? echo 'true' : echo 'false'; ?>
但是,使用print
而不是echo
使其工作。 我认为它有效,因为print
是一个功能 。 更新: print
不是一个函数,它只是表现为一个,这意味着它有一个返回值。
<?php ( true ) ? print 'true' : print 'false'; ?>
我不明白的是回声不起作用的原因。 据我所知,上面的语法只是一个常见的if语句的简写,所以这不应该工作:
if (true) echo 'true'; else echo 'false';
但确实如此。 谁知道?
您可以从PHP文档中读取:
http://php.net/manual/en/language.operators.comparison.php
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
三元运算符需要expressions
,这只是说出a value
的奇特方式。 Echo不会返回任何内容,因此没有任何价值意味着它不是表达式。
另一方面,打印返回something
因为它是一个函数,使它成为一个有效的表达式。
正如你在问题中提到的那样, print
是一个函数但是print不是一个函数,但是它有一些返回值,这就是为什么它也可以在表达式中使用但另一方面echo
没有任何返回值。
还要记住, 三元运算符返回一个值。
“在C语言中,语句和表达式之间存在区别。语法上,echo是一个(简单)语句,如break或return,print是(一元)运算符,如”!“或”〜“。因此,类似任何其他声明,echo不能成为表达式的一部分“
PHP将echo视为一个声明。无论你要编写什么,它都将按原样显示。
你可以在这里阅读详细的解释参考:比较PHP的打印和回声
在PHP中,print和echo不是函数而是语言构造,基本上print和echo不需要使用括号。
不同的是,print是laguage构造,可以像函数一样,但echo不能!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.