В моем коде у меня есть файл, который инициализирует класс MySQLi.Глобальные переменные внутри значения функций NULL
File a
:
$db = new Database(); //MySQLi class
В любом случае, есть файл, который включает в себя этот класс базы данных. Этот файл также включает в себя другие файлы, в которых есть функция, объявленная в нем. Я использую global
связаться $db
File b
:
function xy(){
global $db;
$sql = "..."
return $db->getArray($sql);
}
Testfile
:
require "file_a.php";
require "file_b.php";
require_once "PHPUnit/Framework/TestCase.php";
class testProblemStatistics extends PHPUnit_Framework_TestCase {
testArray(){
$this->assertTrue(array_key_exists('xy', $this->xy())
}
}
я получаю:
Фатальная ошибка: Вызов функции-члена GetArray() на не объект
я исследовал:
var_dump($db);
function xy(){
global $db;
var_dump($db);
...
}
Первый дамп дал мне MySQLi объект,
второй дамп дал мне NULL
Что-то не так с глобальной переменной в file_b.
Дополнительная информация: Я использую PHPUnit, и я запускаю его в командной строке. В обычном браузере все работает нормально.
Где и когда это $ дб глобальные настройки в ваших тестах? – jpic
$ db не находится внутри самого теста, его внутри файла, который должен быть протестирован. – Josef
** и ** когда он инициализирован? :) В любом случае, вы попробовали мой ответ? – jpic