gen*_*sis 16 php constructor class function
可能重复:
__construct用于什么功能?
__construct函数和具有同类名称的函数有什么区别吗?
class foo {
function foo ($something){
echo "I see ".$something." argument";
}
}
class bar {
function __construct ($something){
echo "<br />
I see ".$something." argument again";
}
}
$foo = new foo("foo");
$bar = new bar("bar");
Run Code Online (Sandbox Code Playgroud)
Dam*_*ien 33
命名的方法是PHP4构造函数的方式.
为了向后兼容,如果PHP 5找不到给定类的__construct()函数,它将按类的名称搜索旧式构造函数.实际上,这意味着唯一具有兼容性问题的情况是该类是否有一个名为__construct()的方法,该方法用于不同的语义.
从PHP 5.3.3开始,与命名空间类名的最后一个元素同名的方法将不再被视为构造函数.此更改不会影响非命名空间的类.
http://www.php.net/manual/en/language.oop5.decon.php
名为class的构造函数是PHP4的向后兼容功能.从PHP 5.3.3开始,它不适用于命名空间类
如果两者__construct和class-named函数都存在,则将其__construct用作构造函数.