函数定义PHP中类的同名

时间:2016-11-06 14:10:53

标签: php oop

为什么这段代码会打印“AA”,如果我将我的班级名称命名为我的班级。

class A{

     public function a() {
        echo 'A';
    }
}

$a = new A();
$a->a(); // AA

谢谢!

2 个答案:

答案 0 :(得分:0)

这是因为,您的每一行都会调用a(),因为它以类命名,它用作类A的构造函数。< / p>

通常你会使用__construct - 函数作为构造函数,但由于没有函数调用__construct,因此将调用以类命名的函数。实际上你的输出看起来像是:

$a = new A(); // A
$a->a(); // A

累积到输出AA

  

为了向后兼容PHP 3和4,如果PHP找不到给定类的__construct()函数,并且该类没有从父类继承它,它将搜索旧式构造函数,这个班的名字。

http://php.net/manual/en/language.oop5.decon.php

答案 1 :(得分:-1)

一旦声明函数a()

,构造函数就会自动调用