我尝试使用包含文件的名称空间:
<?php
namespace MyNamespace;
function foo() {
echo 'Test';
}
include( 'otherfile.php' );
?>
otherfile.php 内部是<?php foo(); ?>;
,我也希望看到“测试” 作为其输出。 / p>
是否有机会在不修改其他文件的情况下意识到这一点?
我的愿望:我想替换外部库代码中的现有文件。我不想修改该代码,因为我希望在那里得到进一步的更新。
答案 0 :(得分:0)
否,不可能。您正在定义函数MyNamespace\foo
。包含的文件正在调用函数foo
。如果不更改该文件中的代码,就无法更改foo()
所指的含义。如果要替换函数foo
,您唯一真正的希望是定义自己的function foo
(无名称空间),并避免加载该函数的其他实现。如果不是这样,那就是runkit
之类的东西,您实际上并不想诉诸于此。