Php 声明财产的价值等于父财产的价值

Php 声明财产的价值等于父财产的价值,php,oop,Php,Oop,我有一个叫做“person”的父类“个人”是“个人”的子类 在“person”中,我有一个受保护的属性,名为“$\u pk\u person” 在“个人”中,我想创建一个名为“$\u fk\u individual\u person”的受保护属性,其值等于继承的“$\u pk\u person”值 难道我不应该仅仅说: protected $_fk_individual_person = {$this->_pk_person}; 或 或 或 或 或 或 课堂上的“个人” 他们都没有工作。

我有一个叫做“person”的父类“个人”是“个人”的子类

在“person”中,我有一个受保护的属性,名为“$\u pk\u person”

在“个人”中,我想创建一个名为“$\u fk\u individual\u person”的受保护属性,其值等于继承的“$\u pk\u person”值

难道我不应该仅仅说:

protected $_fk_individual_person = {$this->_pk_person};

课堂上的“个人”

他们都没有工作。我肯定是在什么地方犯了一个根本性的错误,因为我是一个完全的新手

请帮帮我

使用构造函数后,我的类如下所示:

class individual extends person {
public $_fk_individual_person;
function __construct() {
    $this->_fk_individual_person = $this->_pk_person;
}
}
我对它进行了测试,但屏幕是空白的: $xyz=新个人()


我现在在哪里搞砸了?很抱歉,我是个新手(昨天刚开始oop编码,这是我的第一堂课)

您需要在子类构造函数中执行赋值

class B extends A{
   function __construct() {
      $this->_fk_individual_person = $this->_pk_person;
   }
}

如果没有构造函数,则无法执行此操作。因为初始化必须是常量或在编译时已知。查看手册:

类成员变量称为“属性”。你也可以看到它们 指使用其他术语,如“属性”或“字段”,但 在本参考中,我们将使用“属性”。他们是 通过使用关键字public、protected或private之一定义, 后跟一个普通变量声明此声明可能会 包括初始化,但此初始化必须是常量 值——也就是说,它必须能够在编译时进行计算,并且 不得依赖运行时信息进行评估。

但使用constructor是一种方法:

class individual extends person {
    protected $_fk_individual_person;
    function __construct() {
        $this->_fk_individual_person = $this->_pk_person;
    }
}

它似乎不起作用。这就是我所做的:类individual扩展person{public$\u fk\u individual\u person;函数{u构造(){$This->\u fk\u individual\u person=$This->\u pk\u person;}}$xyz=new individual()$xyz->pk_person='abcd';echo$xyz->u fk\u个人\u个人@如果你在构造函数运行后赋值,那显然是行不通的。更不用说你不能从外部分配给受保护的属性。哦。。我的错。。谢谢。但出于好奇,有没有办法让两个变量彼此相等呢。我的意思是,你改变一个,另一个会自动改变。因此,两者都只占用服务器内存中的一个位置-谢谢,请使用参考资料;)在构造函数中,您应该编写
$this->\u fk\u individual\u person=&$this->\u pk\u person
而不是
$this->\u fk\u person=$this->\u pk\u person酷。。非常感谢你,伙计。。
protected $_fk_individual_person = self::_pk_person;
protected $_fk_individual_person = parent::_pk_person;
protected $_fk_individual_person = parent::get_pk_person();
class individual extends person {
public $_fk_individual_person;
function __construct() {
    $this->_fk_individual_person = $this->_pk_person;
}
}
$xyz->pk_person='abcd';

echo $xyz->_fk_individual_person;
class B extends A{
   function __construct() {
      $this->_fk_individual_person = $this->_pk_person;
   }
}
class individual extends person {
    protected $_fk_individual_person;
    function __construct() {
        $this->_fk_individual_person = $this->_pk_person;
    }
}