2016-11-06 39 views
1

当我创建新子项时,如何获得父项属性。请注意,我的类不需要继承,因为我的目的只是为了显示一对多的关系。谢谢访问使用子项的父项属性

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 
+1

在这段代码parent属性为null,直到你做这样的事情myChild->属性=新的父() – Aerendir

+1

此外,回声测试是不更好的选择:改用var_dump()。 – Aerendir

+1

尝试var_dump($ myChild)并查看该属性为空。 – Aerendir

回答

1

您可以使用get_parent_class()为此。如下面:

<?php 

class parent { 
    function parent_class() 
    { 
    // implements some logic 
    } 
} 

class child extends parent { 
    function __construct() 
    { 
     echo get_parent_class($this); 
    } 
} 
$CHILD = new child(); 
?> 
+0

只有在PHP 7中,一个方法可以与类本身具有相同的名称,也许将其更改为'__construct()'(我的意思是仅用于方法..) – Xorifelse

0

使用父::

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(); 
+0

这对于显示对象之间的关系以及不直接从Child访问Parent属性的目的是错误的。在这种情况下,失望是错误的选择。 – Aerendir