全局变量未在php中定义

时间:2014-10-28 22:51:51

标签: 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()中为它们赋值时,为什么我的类变量返回undefined的错误?

编辑:

错误:

注意:未定义的变量: C:\ xampp \ htdocs \ apps \ MyVyn \ Utils \ utils \ php \ userQuery.php 中的 57

2 个答案:

答案 0 :(得分:2)

变量的访问方式如下:

$this->iUserId

在当地情况下。

$this->$iUserId

将等同于

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

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

答案 1 :(得分:1)

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

$this->sService = $sService; 

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