У меня есть PHP-файл, импортированный с помощью вызова require_once () в другом PHP-файле, который загружается автоматически. В этом файле определено небольшое количество строковых глобальных переменных:
$foobar = "foo";
$bazqux = "baz";
class FooClass {
private $foo;
public function __construct() {
global $foobar;
$this->foo = $foobar; // $foobar is <null> here
}
}
Однако, когда я запускаю этот код, глобальная переменная $ foobar равна "" в соответствии с XDebug в Apache2 (я использую VS.php в качестве своей IDE). Я получаю ту же проблему, когда запускаю скрипт под обычным PHP FastCGI под IIS.
Я прошел весь свой код, и символ «$ foobar» появляется только в этом исходном файле, поэтому он не перезаписывается в других местах.
Я с тех пор изменил ее с глобальной переменной на константу define (), и она отлично работает.
Есть идеи?