我正在寻找一种在PHP中重载new
运算符的方法。我已经搜索过,似乎不可能。但可能有不同的方式来实现我的需要。
我在不同的文件中定义了一堆类。为了创建类的实例,我必须首先包含该文件。但我不希望在每个new
指令之前调用包含函数的文件。我希望重新定义new
运算符,以便在创建类实例之前包含必要的文件。
有没有优雅的方法来实现这一目标?
答案 0 :(得分:6)
我必须先包含文件
您正在寻找autoloading PHP功能。
答案 1 :(得分:2)
来自Class posing and overloading the "new" operator:
<?php
class Foo {}
class Bar {}
function callback($className) {
if ($className == 'Foo') {
$className = 'Bar';
}
return $className;
}
var_dump(get_class(new Foo));
set_new_overload('callback');
var_dump(get_class(new Foo));
?>
同时检查 Autoloading Classes