Порядок включения
Файл, который устанавливает $baseurl
, должен быть require_once()
первым, чтобы последующие файлы имели доступ к переменной.
Область действия
Если вы определяете $baseurl
в функции или файлы require_once()
находятся внутри функции, тогда $baseurl
будет пойман в область действия этой функции.Это было бы так, если бы settings.php
выглядел примерно так:
<?php
function setup_config() {
$baseurl = 'http://www.example.org';
}
Или требовал изнутри функции
<?php
function include_a_file($file) {
require_once 'my/base/path/' . $file;
}
Это задокументировано в части Variable Scope Руководства по PHP.
Один из способов обойти это - добавить $baseurl
в качестве элемента в $GLOBALS
массив вместо отдельной переменной:
$GLOBALS['config']['baseurl'] = 'my/base/url/';
Примечание Я добавил элемент ['config']
, чтобы пространство имен вашей конфигурации отличалось от всего, что вы можете испытать желание поместить в $GLOBALS
.
переменную unset()
Другая возможность состоит в том, что вы можете вызывать unset($baseurl)
где-то еще в коде, что помечает переменную как неопределенную.