为什么打印和回声在" for"中表现不同?环

时间:2015-06-08 17:37:04

标签: php for-loop printing echo behavior

如果我在此代码中使用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 Parse错误:语法错误,意外&#39;回声&#39; (T_ECHO),期待&#39;)&#39;在第3行的/media/datos/xampp/htdocs/temp/1.php

我的问题是:

  • 为什么我可以在print循环中使用for作为第三个表达式,但在使用echo时却不能这样做?为什么它们之间的行为不同?

参考文献:

1 个答案:

答案 0 :(得分:6)

  

表达。 print()的行为就像一个函数,你可以这样做:$ ret   = print&#34; Hello World&#34 ;;并且$ ret将为1.这意味着打印可以用作更复杂表达式的一部分,其中echo不能。一个   PHP手册中的示例:

$b ? print "true" : print "false";

我的答案的某些部分是以下答案的一部分。我想这是你问题的答案。最重要的部分是 print()表现得像一个功能

请参阅此答案:https://stackoverflow.com/a/234255/1848929

echo

怎么样?
  

注意:因为这是一种语言结构,而不是一种功能   无法使用变量函数调用。

请参阅此页面上的备注部分:http://us2.php.net/manual/en/function.echo.php