我想設置我的類變量不在__construct中,而是在由__construct調用的方法中。我不確定我是否正在討論這項權利。變量在試圖訪問數據時不起作用
class request{
private $sNote;
private $iAffectedUserId;
private $iUserId;
private $sPassword;
private $sFirstName;
private $sLastName;
public function __construct($sService, $oData, $iAffectedUserId){
$this->iUserId = $_SESSION['user_Id'];
$this->sPassword = $_SESSION['password'];
$this->sFirstName = $_SESSION['firstName'];
$this->sLastName = $_SESSION['lastName'];
switch($sService){
case 'note':
$this->requestNote();
break;
default:
echo "ErrorCode: 4000";
break;
}
}
public function requestNote(){
$sQuery = "SELECT * FROM `note` WHERE `sender_Id` = '" . $this->iUserId . "'";
echo $sQuery;
$oResult = conn($sQuery);
if(!is_array($oResult)||!isset($oResult)||empty($oResult)||is_null($oResult)){
echo "ErrorCode: 5000";
} else{
//echo $this->iUserId;
echo json_encode($oResult);
}
}
}
從這個代碼的結果離開我$sQuery
一個空白值,其中$this->iUserId
是。這意味着什麼都沒有返回。
編寫了其他方式的代碼。
class request{
private $sNote;
private $iAffectedUserId;
private $iUserId;
private $sPassword;
private $sFirstName;
private $sLastName;
public function __construct($sService, $oData, $iAffectedUserId){
$this->init_Session_Variables();
switch($sService){
case 'note':
$this->requestNote();
break;
default:
echo "ErrorCode: 4000";
break;
}
}
private function init_Session_Variables(){
$this->iUserId = $_SESSION['user_Id'];
$this->sPassword = $_SESSION['password'];
$this->sFirstName = $_SESSION['firstName'];
$this->sLastName = $_SESSION['lastName'];
}
public function requestNote(){
$sQuery = "SELECT * FROM `note` WHERE `sender_Id` = '" . $this->$iUserId . "'";
echo $sQuery;
$oResult = conn($sQuery);
if(!is_array($oResult)||!isset($oResult)||empty($oResult)||is_null($oResult)){
echo "ErrorCode: 5000";
} else{
//echo $this->iUserId;
echo json_encode($oResult);
}
}
}
這種方式給了我一個錯誤說:
注意:未定義的變量:iUserId在C:\ XAMPP \ htdocs中\ APPS \ MyVyn \ utils的\ utils的\ PHP \ userQuery.php on line
我真的很茫然。什麼在吹?
有什麼不清楚的錯誤消息?另外,你不能縮小代碼的範圍嗎? – 2014-10-29 00:43:31
你確定_SESSION已設置? – Sergey 2014-10-29 00:48:40
@JohnConde對於兩組不同的代碼有兩種不同的結果。錯誤非常明顯,但這並不能說明我在哪裏搞亂了。我嘗試設置變量並訪問它我如何知道,所以如果你知道另一種方式,那麼請賜教。這就是爲什麼我轉向了stackoverflow和其他人的幫助。 – user2812097 2014-10-29 01:17:17