我有2节课 1.用户(父母) 2. validate(child)
用户我对用户进行身份验证
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;
}
}
在验证类$this->access
中返回'hii'而不是给我访问值。
我想在父类函数中更改受保护变量的值,然后在子类中检索它吗?
我在这里做错了什么?
谢谢您的建议。
答案 0 :(得分:0)
<?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
指向它,但是您指向受保护的变量。另一方面,可以通过将$access
函数中的v_c
变量返回到函数内部并尝试访问函数本身而不是变量来对其进行访问。
由于扩展了父类(用户),因此您可以访问它的函数并从中获取返回的值。
答案 1 :(得分:0)
您应该更改值protected $access = " "