php类受保护的区别,从另一个类PHP设置受保护变量的正确方法

我有这个问题要解决:

我创建了两个类,其中第二个是第一个的扩展,在这里我想

设置并从第一堂课中获取一个变量,但是…我找不到做到这一点的“正确”方法

基本上是这样的:

class class_one {

protected $value;

private $obj_two;

public function __construct() {

$this->obj_two = new class_two;

}

public function firstFunction() {

$this->obj_two->obj_two_function();

echo $this->value; // returns 'New Value' like set in the class two

}

}

class class_two extends one {

public function obj_two_function() {

"class_one"->value = 'New Value';

}

}

我怎样才能做到这一点?

解决方法:

头等舱不应初始化第二类,除非您正在寻找Uroboros!保护变量可以由扩展类设置,而无需任何功能支持.只需输入$this-> protVariable =“ stuff”;

但是您将需要一个受保护的函数来从第二个类中设置ClassOne的私有变量.同样,必须在ClassOne中创建一个函数才能实际检索其值.

class ClassOne {

private $privVariable;

protected $protVariable;

/**

*/

function __construct () {

}

/**

* This function is called so that we may set the variable from an extended

* class

*/

protected function setPrivVariable ($privVariable) {

$this->privVariable = $privVariable;

}

}

然后,在第二个类中,您可以调用parent :: setPrivVariable()以使用父函数设置值.

class ClassTwo extends \ClassOne {

/**

*/

public function __construct () {

parent::__construct ();

}

/**

* Set the protected variable

*/

function setProtVariable () {

$this->protVariable = "stuff";

}

/**

* see ClassOne::setPrivVariable()

*/

public function setPrivVariable ($privVariable) {

parent::setPrivVariable ( $privVariable );

}

}

标签:variables,set,get,php,class

来源: https://codeday.me/bug/20191121/2049387.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值