【发布时间】:2015-08-23 07:15:36
【问题描述】:
如果我在这段代码中使用print:
<?php
for($i = 1; $i <= 3; print $i . "\n") {
$i++;
}
?>
我看到这样的输出:
2
3
4
但是当我使用echo 时,代码不起作用:
<?php
for($i = 1; $i <= 3; echo $i . "\n") {
$i++;
}
?>
我看到这个错误:
PHP 解析错误:语法错误,意外的 'echo' (T_ECHO),在第 3 行的 /media/datos/xampp/htdocs/temp/1.php 中期待 ')'
我的问题是:
- 为什么我可以在
for循环中使用print作为第三个表达式,但在使用echo时却不能,为什么它们的行为会有所不同?
参考资料:
【问题讨论】:
-
可能是因为
print返回了一个值;而echo不返回任何值......并且表达式需要一个值 -
@MarkBaker 直接来自文档
print is not actually a real function (it is a language construct) -
@AdrianCidAlmaguer
$i++确实 给出一个值.... 就像所有运算符An operator is something that takes one or more values (or expressions, in programming jargon) __and yields another value (so that the construction itself becomes an expression)__. -
@AdrianCidAlmaguer - 任何没有显式
return的用户定义函数都将返回null,即valid value in PHP,print返回一个整数,这是一个有效值... .. echo 返回void,这不是一个值 -
@Fred-ii- 在这种情况下,我像 php 1.php 一样从 linux 中的命令行运行 php 进行测试,以查看我使用的新行 " \n"
标签: php for-loop printing echo behavior