Php 使用子对象访问父属性
当我为我的孩子创建新的距离时,如何获取父属性。请注意,我的类不需要继承,因为我的目的只是为了显示一对多的关系。谢谢Php 使用子对象访问父属性,php,oop,Php,Oop,当我为我的孩子创建新的距离时,如何获取父属性。请注意,我的类不需要继承,因为我的目的只是为了显示一对多的关系。谢谢 class Parent{ $property; //getter and setter } class Child{ $parent; //for Parent Type } myChild = new myChild(); echo myChild->parent->property;// t
class Parent{
$property;
//getter and setter
}
class Child{
$parent; //for Parent Type
}
myChild = new myChild();
echo myChild->parent->property;// this line does not work for me
您可以为此使用
get\u parent\u class()
。例如:
<?php
class parent {
function parent_class()
{
// implements some logic
}
}
class child extends parent {
function __construct()
{
echo get_parent_class($this);
}
}
$CHILD = new child();
?>
使用父项:
class A {
function example() {
echo "I'm parent";
}
}
class B extends A {
function example() {
echo "I'm child";
parent::example();
}
}
$b = new B;
// This will call B::example(), which will in turn call A::example().
$b->example();
在这段代码中,在执行类似myChild->property=new parent()的操作之前,父属性为null。此外,echo to test不是更好的选择:使用var_dump()。尝试var_dump($myChild)并查看该属性是否为null。否,意味着将父对象分配给属性Child::parent。扩展是“子扩展父”。但出于您的目的,您不需要扩展,只需要赋值。您可以(应该)在_construct()方法中执行此操作,如您收到的一个答案所示。如果您不想使用继承(扩展)。你需要使用构图。i、 e.将父项分配给子项
。此外,属性应该是私有的,以防止其他类更改它们。因此,需要使用magic
函数来访问它们。通常使用getter
和setter
。所有这些示例:只有在PHP7中,一个方法可能与类本身具有相同的名称,也许可以将其更改为\uu construct()
(我指的是仅此方法…)这是错误的,因为他显示对象之间的关系,而不是直接从子对象访问父对象的属性。在这种情况下,不雇佣是错误的选择。