在包含的文件中使用PHP名称空间

时间:2019-06-24 07:39:09

标签: php namespaces

我尝试使用包含文件的名称空间:

<?php
  namespace MyNamespace;

  function foo() {
    echo 'Test';
  }

  include( 'otherfile.php' );
?>

otherfile.php 内部是<?php foo(); ?>;,我也希望看到“测试” 作为其输出。 / p>

是否有机会在不修改其他文件的情况下意识到这一点?

我的愿望:我想替换外部库代码中的现有文件。我不想修改该代码,因为我希望在那里得到进一步的更新。

1 个答案:

答案 0 :(得分:0)

否,不可能。您正在定义函数MyNamespace\foo。包含的文件正在调用函数foo。如果不更改该文件中的代码,就无法更改foo()所指的含义。如果要替换函数foo,您唯一真正的希望是定义自己的function foo(无名称空间),并避免加载该函数的其他实现。如果不是这样,那就是runkit之类的东西,您实际上并不想诉诸于此。