在包含的文件中使用PHP名称空间
我尝试对包含的文件使用名称空间:在包含的文件中使用PHP名称空间,php,namespaces,Php,Namespaces,我尝试对包含的文件使用名称空间: <?php namespace MyNamespace; function foo() { echo 'Test'; } include( 'otherfile.php' ); ?> php的内部是一个,我也希望看到“Test”作为它的输出 在不修改另一个文件的情况下,有没有可能意识到这一点 我的愿望是:我想替换外部库代码中的现有文件。我不想修改该代码,因为我希望在那里得到进一步的更新。不,这是不可能的。您正在定义函
<?php
namespace MyNamespace;
function foo() {
echo 'Test';
}
include( 'otherfile.php' );
?>
php的内部是一个代码>,我也希望看到“Test”作为它的输出
在不修改另一个文件的情况下,有没有可能意识到这一点
我的愿望是:我想替换外部库代码中的现有文件。我不想修改该代码,因为我希望在那里得到进一步的更新。不,这是不可能的。您正在定义函数MyNamespace\foo
。包含的文件正在调用函数foo
。如果不更改文件中的代码,就无法更改foo()
所指内容的含义。如果要替换函数foo
,唯一真正的希望是定义自己的函数foo
(无名称空间)并避免加载该函数的其他实现。如果不是这样的话,它就是这样的东西,你真的不想求助于它。为什么不使用composer及其自动加载功能?自动加载是指在调用函数时定义函数,而之前不定义它。但我要替换的函数将被定义。(谢谢你教我自动加载功能,我以前不知道。)如果不修改代码,我无法避免加载其他函数的实现。如果我把我自己的函数放在include
的前面,我会得到一个致命的错误。据我所知,我不能抓住致命的错误。外部库有500多个文件。。。所以现在是修改其中代码的方法。是的,你现在有点麻烦了…