【问题标题】:Php echo and print different behavior in for loop? [duplicate]PHP在for循环中回显并打印不同的行为? [复制]
【发布时间】:2013-11-03 13:47:18
【问题描述】:

示例 1

for($var=1;$var<=5;print $var,$var++); //有效

示例 2

for($var=1;$var<=5;echo $var,$var++); //无效

上述两个语句的行为并不是那么直接,任何人都可以解释为什么它们显示不同的结果吗?

【问题讨论】:

    标签: php for-loop echo


    【解决方案1】:

    echo 是一种语言结构,而不是函数。它没有返回值。 print() 是一个函数,并且有返回值。

    参考:http://php.net/echohttp://php.net/print

    【讨论】:

    • print() 也是一种语言结构,但我假设因为echo 的语法允许echo 1, 2, 3 输出与循环声明的语法冲突的123,所以它是不允许的.
    • 但它的行为就像一个函数,因为它有一个返回值。但是,是的,大概就是这样。循环运行是因为 $var++ 仍会递增,但 echo 会为自己捕获 ,
    • 但这不是运行时错误,而是解析错误。 ;)
    【解决方案2】:

    虽然printecho 都是语言结构,但为echo 定义的语法与您正在执行的操作相冲突。具体来说:

    echo 1, 2, 3, 4;
    //output: 1234
    

    这与循环定义的语法冲突,这就是为什么我认为你不能在那里使用echo

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 2015-08-23
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2018-10-17
      相关资源
      最近更新 更多