我有一个类,它使用__construct调用的函数为类变量赋值。然而,变量会给出错误,例如未定义。
session_start();
class request{
private $sService;
private $sNote;
private $iAffectedUserId;
private $iUserId;
private $sPassword;
private $sFirstName;
private $sLastName;
function __construct($sService, $oData){
$this->init_Session_Variables();
$this->$sService = $sService;
}
private function init_Session_Variables(){
$this->$iUserId = $_SESSION['user_Id'];
$this->$sPassword = $_SESSION['password'];
$this->$sFirstName = $_SESSION['firstName'];
$this->$sLastName = $_SESSION['lastName'];
}
}
当我尝试在init_Session_Variables()中为它们赋值时,为什么我的类变量返回undefined的错误?
编辑:
错误:
注意:未定义的变量: C:\ xampp \ htdocs \ apps \ MyVyn \ Utils \ utils \ php \ userQuery.php 中的 57
答案 0 :(得分:2)
变量的访问方式如下:
$this->iUserId
在当地情况下。
$this->$iUserId
将等同于
$iUserId = 'x';
$this->x;
也就是说,它就像一个变量变量,$this->$iUserId
是$this->"whatever $userId is set to"
答案 1 :(得分:1)
您的分配不正确,您应该使用例如:
$this->sService = $sService;
此外,它们不是全局变量,它们是类变量。