Я хочу установить переменные класса не в __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);
}
}
}
Этот способ дает мне ошибку говоря:
Примечание: Undefined переменной: iUserId в C: \ XAMPP \ HTDOCS \ приложения \ MyVyn \ Utils \ Utils \ PHP \ userQuery.php на линии
Я действительно в затруднении здесь. Что взрывается?
Что не ясно, о сообщении об ошибке? Кроме того, вы не могли сузить код дольше этого? –
Вы уверены, что установлена _SESSION? – Sergey
@JohnConde Существуют два разных результата для двух разных наборов кода. Ошибка очень ясна, но это точно не говорит о том, где я запутался. Я попытался установить переменную и получить доступ к ней, как я знаю, поэтому, если вы знаете по-другому, пожалуйста, просветите меня. Вот почему я обратился к stackoverflow и другим людям за помощью. – user2812097