关于php对象初始化

    技术2022-05-18  13

    <?php class Test { var $a; function __construct ($b){ $this->a=$b; } } $obj = new Test; //$obj->a ='dde'; echo $obj->a . "/n"; ?>

    上面这段代码执行错误,并不是因为$obj = new Test;应该有括号。

    而是因为在存在 __construct 函数的时候,php不会再提供默认的构建函数,

    php应该是不允许参数不同重载函数。

    下面的代码可以正常运行

    <?php class Test { var $a; } $obj = new Test; $obj->a ='dde'; echo $obj->a . "/n"; ?>

     

    这样我想到了c++里面的构建过程,C++中如果没有填写构建函数,会提供一个默认的,或者你以不同参数的形式重载了构建函数,

    编译器也会提供一个默认的构建函数。

    这个现象应该是php不允许以参数形式重载函数导致的。


    最新回复(0)