如何自动覆盖类?
例如,我有3个文件,例如one.php
,two.php
和three.php
。在每个文件中,我都有相同的类:
class A
{
function someFunc() {}
}
我有一个加载3个文件的foreach。每次A
课程时,我如何强制PHP覆盖?我不想拥有不同的类名,每个类都必须具有相同的类名。
我正在考虑命名空间或类似的东西,但我在命名空间方面并不是那么好。
答案 0 :(得分:1)
这听起来像是一种代码味道。
为什么需要重用现有的类名?
我几乎可以肯定你可以用接口来解决你的问题。
然而这里有一个解决方案:
a.php只会:
namespace A {
class Foo { public function __construct() { echo 'A'; } }
}
B.php:
namespace B {
class Foo { public function __construct() { echo 'B'; } }
}
C.php:
namespace C {
class Foo { public function __construct() { echo 'C'; } }
}
loader.php
foreach (['A', 'B', 'C'] as $ns) {
require_once __DIR__.'/'.$ns.'.php';
$class = $ns.'\\Foo';
$obj = new $class();
}
输出ABC
答案 1 :(得分:1)
只是为了通知大家,我终于通过使用命名空间来解决它。我将在这里发布我的最终解决方案。
感谢大家的帮助!
每个文件:
namespace Unique\Namespace\Here;
use ExtendParent;
class A extend ExtendParent
{
...
}