Я ломаю голову, почему самая простая вещь не работает.
Все, что мне нужно, - это получить доступ к переменной, объявленной во включенном файле.
У меня есть файл с именем connection.php, в котором у меня есть класс с именем MySqlDatabase.В нижней части файла я создал экземпляр класса и присвоил его переменной с именем $ database
// filename database.php begin
class MySqlDatabase(){
// code goes here
}
$database = new MySqlDatabase();
// filename database.php end
. Теперь я включил database.php в нечто .php и пытался получить доступ к переменной $ database, например так
//something.php
require_once 'database.php';
function foo(){
global $database;
$sql = "some sql statement";
mysql_query($sql,$database->connection);
//and remainig code goes here...
}
Когда я запускаю нечто .php, ожидается, что глобальная переменная $ database должна быть доступна в функции foo (), но похоже, что переменная равна нулю, я тестировал ее с помощью функции is_object ()проверить, что объект доступен, но возвращает false.
В целях отладки я добавил проверку is_object () в файл database.php, и он возвращает true.
Также я попытался получить доступ кглобальная переменная с использованием других опций, таких как
$database =& $GLOBALS['database'];
Но мне все еще не повезло.Затем я распечатал полный массив $ GLOBALS с помощью функции print_r (), но у него нет переменной $ database, я также проверил с помощью get_defined_vars (), но у него также нет этой переменной.Но я могу видеть их в самом включенном файле
Я два дня ломаю голову, чтобы заставить эту простую вещь работать, но я скомпрометировал и скопировал код подключения базы данных во все файлы.