我尝试对包含的文件使用命名空间:
<?php
namespace MyNamespace;
function foo() {
echo 'Test';
}
include( 'otherfile.php' );
?>
在 otherfile.php 里面是一个 <?php foo(); ?>;
我也希望看到 "Test" 作为它的输出。
有没有机会在不修改其他文件的情况下实现这一点?
我的愿望:我想替换外部库代码中的现有文件。我不想修改该代码,因为我希望在那里获得进一步的更新。
最佳答案
不,这不可能。您正在定义函数 MyNamespace\foo
。包含的文件正在调用函数 foo
。如果不更改该文件中的代码,就无法更改 foo()
所指的含义。如果您想替换函数 foo
,您唯一真正的希望是定义您自己的 function foo
(无 namespace )并避免加载该函数的其他实现。如果不是这个,那就是runkit
之类的东西,您真的不想求助于此。
关于php - 在包含的文件中使用 PHP 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731868/