echo语句的操作顺序

Tan*_*avo 4 php

这是我的代码:

<?php
    class Test_Class {
        public function Show() {
            return "Test_Class->Show() function";
        }
    }

    class Test_Class2 {
        public function Show() {
            echo "Test_Class2->Show() function";
        }
    }

    $var1 = new Test_Class();
    $var2 = new Test_Class2();

    echo "var1 :: " . $var1->Show() . "<br />";
    echo "var2 :: " . $var2->Show() . "<br />";
?>
Run Code Online (Sandbox Code Playgroud)

这是输出:

 var1 :: Test_Class->Show() function  
 Test_Class2->Show() functionvar2 :: 
Run Code Online (Sandbox Code Playgroud)

您会注意到返回字符串的类的结果显示在正常情况下,而echo的字符串的类的结果显示在调用它的echo语句之前.

现在,我知道它首先得到处理,这就是它首先出现的原因.但是如何看待较低的水平呢?

它是这样的:
...解析
...解析
....嘿!和echo声明,让我们解析吧!
......嘿!我们正在解析的这个echo语句里面是一个对象的方法,让我们解析一下
........在这个方法中有一个echo,所以让我们来评估它(输出的内部echo语句)
....我们完成了评估echo语句(输出外部echo语句)
..解析
..解析

那很近吗?

有人知道"操作顺序"吗?

web*_*ave 5

字符串在执行期间连接在一起.必须在回显之前构建字符串.

如果您希望从左到右回显声部,请使用逗号:

echo "var1 :: ", $var1->Show() , "<br />";
echo "var2 :: " , $var2->Show() , "<br />";

/* output:

var1 :: Test_Class->Show() function
var2 :: Test_Class2->Show() function

*/
Run Code Online (Sandbox Code Playgroud)

  • 哇..多年来我一直在使用`echo`,但我以前从未使用过这种方式.谢谢! (2认同)