Когда я использую require_once
или include_once
включить файл, он не работает, в то время как при использовании require
или include
он работает отлично.«требуют» работы, но «require_once» не работает
public function ParseURL() {
require_once (APP_PATH . "config/config.php");
$this->url_as_parts = explode('/', $this->url);
$class = isset($this->url_as_parts[0]) ? $this->url_as_parts[0] : $config['default_controller'];
$method = isset($this->url_as_parts[1]) ? $this->url_as_parts[1] : "index";
$parms = isset($this->url_as_parts[2]) ? $this->url_as_parts[2] : "";
if (!class_exists($class)) {
trigger_error("The class {$class} not exists <br/>");
exit;
}
$controller = Object::get($class);
if (!method_exists($controller, $method)) {
header('HTTP/1.0 404 Not Found');
include(SYSTEM_PATH . "languages/" . $config['system_language'] . "/errors/404_not_found.html");
exit;
}
if (empty($parms)) {
$controller->{$method}();
} else {
$parms_array = array_slice($this->url_as_parts, 2);
call_user_func_array(array($controller, $method), $parms_array);
}
}
Следующая строка не выводится сообщение об ошибке и правильный путь require_once (APP_PATH . "config/config.php");
, но я не могу доступ $config['system_language']
, который находится внутри файла config.php
.
Обратите внимание, что когда я меняю require_once
на require
или include
, все в порядке.
Потому что вы используете функцию дважды и на все времена после первого этого файла, который не включен? –
Baybe вы включили его один раз и перезаписываете значения '$ config' где-то еще в вашем коде –
О, Он внутри функции ... Выполняет' global $ config; 'внутри функции или передает' $ config' в качестве параметра к функции –