为什么以下代码打印出10而不是null?

top*_*her 3 php oop

以下代码输出10.这是为什么?

<?php 

class a{
    var $c;

    public function a(){
        $this->c=10;
    }
}

class b extends a{

    public function print_a(){
        print $this->c;
    }
}

$b=new b;
$b->print_a();
Run Code Online (Sandbox Code Playgroud)

小智 7

因为public function a()是构造函数.

为了向后兼容,如果PHP 5找不到给定类的__construct()函数,并且该类没有从父类继承,则它将按类的名称搜索旧式构造函数.

PHP构造函数手册中查看更多内容