我在课堂上发现了这种奇怪的行为。这是一个PHP Bug吗?
<?php
class A
{
public function disp1()
{
echo "1";
}
public function disp3()
{
echo "3";
}
}
$a = new A;
echo $a->disp1()." 2 ".$a->disp3();
预期结果
1 2 3
实际结果
13 2
答案 0 :(得分:5)
你echo
已经echo
'了。这两个方法在渲染回显之前运行。因此,首先运行每个方法中的echo
,然后运行类外的回显。然而,它唯一会呈现的是2
。
要获得预期结果,您需要返回每种方法的值:
class A {
public function disp1() {
return "1";
}
public function disp3() {
return "3";
}
}
$a = new A;
echo $a->disp1()." 2 ".$a->disp3();
答案 1 :(得分:1)
这是因为你有方法的回声,而不是回归。所以首先它将回显1然后是3,然后结果现在为“2”,因为方法返回NULL。