2

以下代码仅使用打印语句

 file_exists('index.php') || print "hi"; \\ works fine and prints hi



 file_exists('index.php') || echo "hi";  \\ error 

为什么print有效但echo导致解析错误?

4

4 回答 4

4

这是因为echo它是一种语言结构并且print是一个内置函数。

使用echo也比print出于同样的原因稍快,但在表达式中使用时会导致解析器错误。

另请参阅错误报告:https ://bugs.php.net/bug.php?id=15866

于 2012-06-03T04:58:52.820 回答
1

我认为这是因为 print 返回一个布尔值,而 echo 什么都不返回,所以你不能在布尔表达式中使用。

http://www.htmlite.com/php004.php

于 2012-06-03T04:45:18.160 回答
0

print 返回 1,表示真正的 echo 不返回任何内容。看起来您有一个 or 语句,它需要 file_exists 和输出才能返回 true。

于 2012-06-03T04:46:11.887 回答
0

Echo 和 Print 看起来相似但略有不同

打印 - 1 个回声 - 无

在上面的语句中,如果文件存在,那么它什么也不显示

如果不存在,那么下一步是 OR Print ,Print 总是返回一个布尔值

于 2012-06-03T04:52:33.403 回答