У меня есть ситуация, когда объект, созданный в верхней позиции в моем файле PHP, деконструируется до достижения конца кода PHP в этом файле
File1.php
//* This is all in the same PHP file *//
<?php
session_start();
include 'includes/user.inc.php';
$userOBJ = new User; //Declaring the object
?>
//*** jQuery and HTML code here ***//
<?php
if($userOBJ->isAdmin($_SESSION['session_u-name']) == true){
AdminControl();
}
// This code gets done without any problem
function AdminControl(){
echo "<a id='dbControlAdmin' onclick='changeDisplayAdm()'>Database
Control</a>";
}
?>
//*** More HTML and jQuery Code here ***//
<?php
$userOBJ->getUsersName(); //The object is no longer available when reaching this code
?>
В классе объектов у меня есть эта функция в качестве деконструктора:
public function __destruct(){
echo "<b style='color: red;'>Status:</b> Database Connection->Disconnect";
}
Это функции, которые вызываются через объект:
public function isAdmin($user){
$userToGet = $user;
$stmt = $this->Connect()->prepare("SELECT admin_db FROM user_secure WHERE username_db=?");
$stmt->execute([$userToGet]);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
$value = $row["admin_db"];
if($value == 1){
return true;
} else {
return false;
}
}
}
public function getUsersName(){
$stmt = $this->Connect()->prepare("SELECT username_db FROM user_secure");
$stmt->execute();
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)){
echo "<option value='" . $row['username_db'] . "'>" . $row['username_db'] . "</option>";
}
}
}
Когда я запускаю сайт, в верхнем левом углу появляется это сообщение
Статус: подключение к базе данных-> Отключить
Какую инструкцию имеет объект в функции __destruct, и веб-сайт развертывает ошибку PHP, где последний вызов функции: $userOBJ->getUsersName();
Ошибка:
Примечание: неопределенный индекс: username_db в C: \ wamp64 \ www \ NewKali \ includes \ user.inc.php в строке 57
Я не понимаю, где вызывается функция __destruct или почему она вызывается! Надеюсь, что вы можете мне помочь.
Спасибо, что уделили время!