仅当定义了其他类时才扩展PHP类
有些人可能会说,由于潜在的不一致性,这可能是一种不好的做法,但是,我想知道如何(如果可能的话)告诉一个类扩展另一个类,但前提是它已经定义 我知道这不起作用,但我真正想要的是:仅当定义了其他类时才扩展PHP类,php,class,oop,extend,Php,Class,Oop,Extend,有些人可能会说,由于潜在的不一致性,这可能是一种不好的做法,但是,我想知道如何(如果可能的话)告诉一个类扩展另一个类,但前提是它已经定义 我知道这不起作用,但我真正想要的是: class MyClass extends (class_exists('OtherClass') ? OtherClass : null) 或者,如果类存在,则可以在构造函数中运行一个函数来设置扩展 我当然想避免 if(class_exists('OtherClass')) { class MyClass ex
class MyClass extends (class_exists('OtherClass') ? OtherClass : null)
或者,如果类存在,则可以在构造函数中运行一个函数来设置扩展
我当然想避免
if(class_exists('OtherClass'))
{
class MyClass extends OtherClass
{
//The class
}
}
else
{
class MyClass
{
//The class
}
}
。。因为大量的代码重复
我在谷歌和网站上到处寻找答案,但什么也没找到——如果我重复了一个问题,一定要让我知道。你可以创建一个中间人类,它是在class\u exists()
条件下创建的,但没有自己的行为:
if (class_exists('OtherClass')) {
class MiddleManClass extends OtherClass { }
} else {
class MiddleManClass { }
}
class MyClass extends MiddleManClass {
// The class code here
}
这使得类层次结构包含一个以上的类,但没有重复的代码(实际上没有代码),并且MyClass
中的方法可以通过parent::
或$This
与往常一样,如果它可用。当然可以!我在脑子里对这样的东西进行了伪编码,但无法编造任何有用的东西。干杯。昨天我在我工作的一个项目的遗留代码中看到了相同的代码。然后我在问如何做手术才是更好的方法。我认为有几种与PHP标准相关的解决方案。此外,我无法看到该解决方案可能导致的问题,例如:自动加载、apc等。谢谢。