我在课堂上发现了这种奇怪的行为.这是一个PHP Bug吗?
<?php
class A
{
public function disp1()
{
echo "1";
}
public function disp3()
{
echo "3";
}
}
$a = new A;
echo $a->disp1()." 2 ".$a->disp3();
Run Code Online (Sandbox Code Playgroud)
预期结果
1 2 3
实际结果
13 2 2
你正在echo做什么echo.这两个方法在渲染回显之前运行.因此,echo首先运行每个方法中的s,然后运行类外的回声.然而,它唯一会呈现的是2.
要获得预期结果,您需要返回每个方法的值:
class A {
public function disp1() {
return "1";
}
public function disp3() {
return "3";
}
}
$a = new A;
echo $a->disp1()." 2 ".$a->disp3();
Run Code Online (Sandbox Code Playgroud)