如何更改父类函数中受保护变量的值



我有两个类1.用户(家长(2.验证(子(

在用户中,我对用户进行身份验证,

class User extends CI_Controller {
protected $access = "hii";
function v_c(){
$access = $this->model2->getAccess();
$this->access = $access;
redirect('user/storelist');
}
}
class validate extends User{
function __construct() {
parent::__construct();
print_r($this->access);die;
}
}

在validate类$this->access中,没有给我访问值,而是返回"hii"。我想更改父类函数中受保护变量的值,然后在子类中检索它?我在这里做错了什么?谢谢你的建议。

您应该更改值protected $access = " "

<?php
class User extends CI_Controller {
protected $access = "hii";
function v_c(){
$access = $this->model2->getAccess();
$this->access = $access;
redirect('user/storelist');
return $access;
}
}
class validate extends User{
function __construct() {
parent::__construct();
print_r($this->v_c());die;
}
}

你的$access变量是受保护的,所以你试着像你说的那样print_r,但你指向了受保护的那个。另一方面,v_c函数内的$access变量可以通过在函数内返回并尝试访问函数本身而不是变量来访问。

由于您扩展了父类(Users(,因此可以访问它的函数并从中获取返回值。

最新更新