重载PHP“新”运算符

时间:2014-09-07 13:56:44

标签: php oop

我正在寻找一种在PHP中重载new运算符的方法。我已经搜索过,似乎不可能。但可能有不同的方式来实现我的需要。

我在不同的文件中定义了一堆类。为了创建类的实例,我必须首先包含该文件。但我不希望在每个new指令之前调用包含函数的文件。我希望重新定义new运算符,以便在创建类实例之前包含必要的文件。

有没有优雅的方法来实现这一目标?

2 个答案:

答案 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