php中未定义全局变量


Global variables not defined in php

我有一个类,它使用__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()中为类变量赋值时,为什么我的类变量返回未定义的错误?

编辑:

错误:

注意:未定义的变量:C:''examplep''htdocs''apps''MyVyn''Utils''Utils''php''userQuery.php中的iUserId57行

变量的访问方式如下:

$this->iUserId

在本地环境中。

$this->$iUserId

将相当于

$iUserId = 'x';
$this->x;

也就是说,它就像一个变量,$this->$iUserId$this->"whatever $userId is set to"

您的分配不正确,您应该使用例如:

$this->sService = $sService; 

此外,它们不是全局变量,而是类变量。