我正在尝试以下操作:
//file1.
namespace foo;
class mine {
public function mine() {
echo "Does not work!!";
}
}
//file2.
use foo/mine;
include "foo/mine.php";
$obj = new mine();
上面的场景不起作用。没有错误,包括文件——构造函数没有被调用。
但是,当我使用 __constructor() 时,一切正常。我正在使用 php v5.4
From PHP手册:
为了向后兼容,如果 PHP 5 找不到 __construct()
给定类的函数,并且该类没有从
父类,它将搜索旧式构造函数,
以班级名称。实际上,这意味着唯一的情况
如果类有一个方法,就会出现兼容性问题
名为 __construct() ,用于不同的语义。
从 PHP 5.3.3 开始,与 a 的最后一个元素同名的方法
命名空间类名将不再被视为构造函数。这
更改不会影响非命名空间类。
您可以使用类的名称作为构造函数(除非该类是命名空间的),因为 PHP5 保留它是为了向后兼容 PHP4,但不推荐这样做,因为它是旧方法,可能会在较新版本的 php 中删除。因此,除非您正在编写出于某种原因需要与 PHP4 兼容的东西,否则请使用__construct()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)