小弟有一疑惑不解,望提点!不胜感激!
php实例化一个类,次类的类名和其中一个方法名相同,实例化后直接就运行了该方法,这是为什么?
<?php
//namespace test;
class abc {
public function abc() {
echo 111;
}
}
$aa = new abc;
//$aa -> abc();
?>
但是加上命名空间后这种现象又没有了,这里面有什么道理么?
如上面代码,注释了命名空间后,实例化之后直接输出 111。但是加上命名空间后又需要手动调用了!
与类同名的方法相当于构造函数,就是
function __construct(){}
,建议不要使用与类名相同的函数名
第二个问题
所以 注释了命名空间后,实例化之后直接输出 111。但是加上命名空间后又需要手动调用了!
文档都有讲,仔细看:http://php.net/manual/zh/language.oop5.decon.php