我正在编写cli
app,因此我创建了几个方法的主类,其中一个名为start()
。简化:
class Foo{
...
public function start(){
echo "Let's start!";
...
}
}
要运行我的应用,我实例化Foo
类的新对象并调用start()
方法:
class Foo{
...
}
$foo = new Foo();
$foo->start();
我注意到,即使start()
类中没有__construct()
方法,也会在对象构造上执行Foo
。这很奇怪。
终端输出:
$ php start.php
Let's start!
Let's start!
start()
代表PHP的魔术方法之一吗?我在PHP 5.5上。
答案 0 :(得分:4)
在旧版PHP 4中,构造函数未命名为__construct
,而是类的名称。 E.g:
class Start {
function start() {
// I am the constructor
}
}
PHP 5仍然支持这种遗留行为,如果没有构造函数,则查找与该类同名的方法。