PHP将父属性值复制到子属性值

时间:2012-10-18 19:03:43

标签: php inheritance parent-child

从下面的代码中,是否有人知道如何将$ parent-> foo和$ parent-> foo1的值分别放入$ child-> bar和$ child-> bar1 B中定义的方法?

我可以在对象外部使用$ child-> bar = $ parent-> foo和$ child-> bar1 = $ parent-> foo1复制值,但感觉可能有一个简单的方法对于这种情况,孩子(甚至是那个问题的父母)。我的父对象是从html输入框中获取foo的值。

Class A 
{
    public $foo="someText";
    public $foo1="someOtherText";
}

Class B extends A 
{
    public $bar;
    public $bar1;

    //theoretical function Id like to use
    public copyParentcontents() 
    {

    }
}

$parent = new A();
$child = new B();

2 个答案:

答案 0 :(得分:1)

Class B extends A {

public $bar;
public $bar1;

//theoretical function Id like to use
public copyParentcontents($parent) {
    if(get_class($parent)=="A"){
        $this->$bar = $parent->foo;
        $this->$bar1 = $parent->foo1;
    }else{
    //You could throw an exception here
    }
}

}

然后:

$parent= new A; $child= new B; 
$parent->foo = "modifiedText";
$child->copyParentcontents($parent);

也许这就是你需要的?

答案 1 :(得分:0)

在您的示例中,$child将从$parent继承类参数:

echo $child->foo; // prints "someText";