【发布时间】:2010-11-27 10:54:51
【问题描述】:
我需要扩展一个项目。所有类都在单独的文件中,我需要扩展一些类而不重写其他文件中的现有代码。我的想法是使用命名空间,但我失败了。这是一个例子:
我已将原来的 A.php 类文件重命名为 A_Original.php:
class A
{
public function hello()
{
echo "hello world from Class A\n";
}
}
然后新建一个A.php:
namespace AOriginal {
include 'A_Original.php';
}
namespace {
class A
{
public function hello()
{
echo "hello world from Class A Extended\n";
}
}
}
这失败了,因为在 including 原始 A_Original.php 文件中,该类被转储到全局范围内(因此忽略了命名空间命令)。
我无法修改 A_Original.php 文件中的现有代码,但重命名是可以的。
其他项目文件(我无法修改)使用require "A.php"。
如何做到这一点?
【问题讨论】:
标签: php namespaces