我正式成为弱智。 [让我解释]
直到今天我才真正考虑过类和它们之间的关系。我试图找出一些看起来很明显的东西,但由于我很愚蠢,所以我看不到它。
假设我有一个将从不同文件扩展的核心类。子类如何调用其他兄弟类的函数(也就是说,如果这些类根本被视为子类)。
示例代码:(别杀我)
class cOne {
public function functionOne(){
echo "something";
}
}
然后在另一个文件上,我说:
class cOneChildOne extends cOne {
public function functionOne(){
echo "something from child one";
}
}
在另一个文件中我说:
class cOneChildTwo extends cOne {
public function functionOne(){
echo "something from child two";
}
}
我必须如何创建一个新对象以及何时创建一个新对象,以便我能够以类似于以下的方式访问子类和父类的函数$newObject->Children->function();
我正在认真考虑这个选项,我今天已经完全失去了理智,无法正常思考。
从那以后我显然做错了什么:$newObject = new cOne;
创建对象,但子类之一的代码无法访问不直接位于核心类或其本身的任何内容。
Thanks
您可以在主类静态数组中收集子实例
class C1{
static public $childs=array();
function __construct(){
self::$childs[]=$this;
}
}
class C1C1 extends C1{
function hi(){
echo 'hi from C1C1 <br />';
}
}
class C1C2 extends C1{
function hi(){
echo 'hi from C1C2 <br />';
}
}
$c1 = new C1C2();
$c2 = new C1C2();
$c3 = new C1C1();
$c4 = new C1C1();
$c5 = new C1C1();
$c6 = new C1C1();
foreach(C1::$childs as $c){
$c->hi();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)