<?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不允许以参数形式重载函数导致的。