kil*_*129 -3 php constructor php4
<?php
abstract class foo {
function foof() {
echo "Hello, I'm foo :)";
}
}
class foo2 extends foo {
function foo2f() {
$this->foof();
}
}
class foo3 extends foo2 {
function foo3f() {
$this->foo2f();
}
}
$x = new foo3;
$x->foo3f();
?>
Run Code Online (Sandbox Code Playgroud)
这段代码输出"Hello,I'm foo :)"(正如预期的那样),但当我将代码改为这样的代码时:http://pastebin.com/wNeyikpq
<?php
abstract class foo {
function fooing() {
echo "Hello, I'm foo :)";
}
}
class foo2 extends foo {
function foo2() {
$this->fooing();
}
}
class foo3 extends foo2 {
function foo3() {
$this->foo2();
}
}
$x = new foo3;
$x->foo3();
?>
Run Code Online (Sandbox Code Playgroud)
PHP打印:
你好,我是foo :)你好,我很好:)
为什么?这是一个错误吗?
小智 8
因为您呼叫的foo2的两倍,function foo2()在foo2它的构造函数.