В файле config.php
$_CONFIG = array();
require_once("config.inc.php");
var_dump($_CONFIG);
В файле config.inc.php
$_CONFIG = array('x' => 'y', ...);
var_dump($_CONFIG);
Вывод этого кода при запуске из командной строки:
array(15) {
["x"]=>
string(1) "y"
...
}
array(0) {
}
Если я удаляю первую строку config.php, который инициализирует пустой массив $ _CONFIG, скрипт работает, и var_dumps идентичны.
Обратите внимание, что это скрипт, запускаемый из командной строки. Есть идеи, почему это происходит? Я пробовал это на двух разных машинах, одна с PHP 5.3.3, а другая с PHP 5.3.5.
Обновление - похоже, это проблема только с командной строкой. При запуске из браузера, кажется, хорошо. Также есть третий файл, который я забыл упомянуть, в который входит config.php
test.php
require_once("/path/to/config.php");
При запуске test.php , а не config.php из командной строки, я получаю вывод выше.