Я перевожу сайт PHP с разработки на рабочий сервер и тестирую новое соединение с базой данных. У меня есть страница config.php
, в которой есть только это (но с реальными данными):
<?php
// Database Constants
defined('DB_SERVER') ? null : define('DB_SERVER', 'xxx.xxx.xxx');
defined('DB_PORT') ? null : define('DB_PORT', 'yyy');
defined('DB_USER') ? null : define('DB_USER', 'zzz');
defined('DB_PASS') ? null : define('DB_PASS', 'abcdefg');
defined('DB_NAME') ? null : define('DB_NAME', 'lmnop');
?>
Тогда у меня есть initialize.php
, который содержит все мои define()
константы и вызывает все мои занятия.
<?php
// Define core paths
// DIRECTORY_SEPARATOR is a PHP pre-defined constant
// (\ for Windows, / for Unix)
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null : define('SITE_ROOT', 'http://...etc');
defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.'/_includes');
// load config file first
require_once(LIB_PATH."/config.php");
etc...
?>
Пока все хорошо. (Я использую URL, а не пути DIR специально, кстати.)
Но когда я создаю страницу test.ph
p для выполнения запроса, я получаю сообщение об ошибке, что DB_SERVER не найден. Я могу повторить что-то в config.php
, и оно появится вверху страницы на test.php
, поэтому он вызывает файл config.php
. А вот настоящий сумасшедший кикер:
Когда я копирую все из config.php
и вставляю его в initialize.php
, ничего не меняю, а затем закомментирую файл config.php
... запрос работает. По какой-то причине он просто не позволяет мне извлекать определения этих переменных из config.php
.
Кто-нибудь знает, почему?