Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展类或接口或抽象-MVC的PHP子类ref:Vtiger_Php_Oop_Inheritance_Vtiger - Fatal编程技术网

扩展类或接口或抽象-MVC的PHP子类ref:Vtiger

扩展类或接口或抽象-MVC的PHP子类ref:Vtiger,php,oop,inheritance,vtiger,Php,Oop,Inheritance,Vtiger,我在Vtiger(MVC设置)中工作,模块包含MVC文件。模块通过扩展其他模块的类来扩展其他模块。在本例中,报价扩展了库存模块。结果是报价中有一个自定义块,而不是一个全新的“页面” 我想要那个“积木”,它实际上是一个完整的模块。所以这应该很简单,只是我遇到了PHP的“继承”问题。我需要扩展的类已经是扩展类了 我的逻辑是:(B得到C)有效!现在A得到了B。这不起作用 父类事件扩展了日历(显示事件详细信息/“最终页面”) 正在退出的“工作”类事件扩展库存(创建新块) 我需要这两个类来通信,因为Cal

我在Vtiger(MVC设置)中工作,模块包含MVC文件。模块通过扩展其他模块的类来扩展其他模块。在本例中,报价扩展了库存模块。结果是报价中有一个自定义块,而不是一个全新的“页面”

我想要那个“积木”,它实际上是一个完整的模块。所以这应该很简单,只是我遇到了PHP的“继承”问题。我需要扩展的类已经是扩展类了

我的逻辑是:(B得到C)有效!现在A得到了B。这不起作用

父类事件扩展了日历(显示事件详细信息/“最终页面”)

正在退出的“工作”类事件扩展库存(创建新块)

我需要这两个类来通信,因为Calendar已经与事件“对话”,而事件与Inventory对话,变量是不相关的,但我无法使输出工作,我假设是因为类“继承”

所以直接的问题是:可以扩展现有的子类吗

  • Stack在几篇文章中提到了这一点,但我无法“理解”这一点在这里的应用,因为没有共享变量,不应该有任何错误的obj调用
以下是我学习“连接”儿童课程的资源:


我试图解释我提到的问题,因为它可能与php无关,而是我的理解。提前感谢。

扩展类实际上会创建一个新类,该类可以访问父类的相同方法和属性。它是获取新方法/属性的子类,而不是父类。它不会修改父类来添加这些方法。因此,如果您有
类A
和两个扩展A的类,就像
类B扩展A
类C扩展A
(这就是您正在做的),那么类
B
C
只共享
A
中定义的方法,而不是彼此共享。您可以更改类
C
以扩展
B
,并且它可以访问两个父类。很好的例子,谢谢。但我认为情况恰恰相反。。A和B已被使用。B和C是新的一对。如果我理解您的解释(可以访问父类的相同方法和属性)。。。我可以简单地从A到C,然后当A调用B时(就像通常那样)。。。B将通过A访问C??我的:[A+(B]+C)…不起作用([A+B]+[A+C])会起作用吗?我无法更改A+B的属性。。我只能将C作为附加组件连接。抱歉,如果我把一件简单的事情复杂化了。你可以创建一个新类(C)并让它扩展(B)。然后A和B将有权访问C。如果您在C中重新定义(覆盖)A或B中存在的方法,当A或B引用
$this
时,它将是C类。例如:现在在A中定义了一个C覆盖的方法,在A中定义的另一个方法使用
$this
访问以前覆盖的方法。这当然取决于A和B如何尝试访问在其父级和子级中定义的方法(使用$This而不是特别使用
parent::method
child::method
)。我理解,谢谢。对我来说,问题在于现有的代码,因为我用C扩展了B。我将不得不寻找冲突。谢谢你的澄清!请回答你的第一个评论,我将标记为正确答案,因为它解释了类顺序之间的属性关系。