@Pe3oHaHc

Почему php функции include/require просто ничего не делают?

Здравствуйте! Я по работе разбираюсь с сайтом, который писал не я. И я никак не могу его запустить... Я получаю пустую страницу, чтобы я не делал! Я сумел локализировать ошибку ровно до этого момента:

<?php
final class Template {

    public function view($file, $params = array())
    {
            //Не представляю зачем это надо
        $newTplClass = new Template();
        $this->tpl = $newTplClass;

        // Установка переменных для шаблона.
        foreach ($params as $k => $v)
        {
            $$k = $v;
        }

        // Генерация HTML в строку.
        ob_start();

        $path = DIR_APPLICATION . 'views/' . $file;

        echo $path;   //это - выводится.

        require_once $path;    //Здесь просто пропасть

        echo 'Это не выводится!';

        return ob_get_clean();
    }
}
?>


Строка с require_once просто проглатывается компилятором и выполнение прекращается. Более того, какой-бы параметр я не передал в require_once она не выводит ни ошибок ни предупреждений. Однако, если поместить её в начало файла, до класса template, эта функция работает как надо. Я весь день бьюсь над этой проблемой и не сдвинулся ни на йоту! Может есть какой-то способ найти хотя бы суть ошибки? Помогите пожалуйста!
  • Вопрос задан
  • 3184 просмотра
Пригласить эксперта
Ответы на вопрос 5
@gro
>не выводит ни ошибок ни предупреждений
Включите вывод :)

>Однако, если поместить её в начало файла, до класса template, эта функция работает как надо
Кого поместить? require с неизвестной переменной $path? И всё работает как надо?
Ответ написан
Anonym
@Anonym
Программирую немного )
Попробуйте в начале файла написать error_reporting(E_ALL); чтобы выводились все ошибки.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
в php.ini поправьте директиву display_errors на on.
Ответ написан
Anonym
@Anonym
Программирую немного )
Возможно дело в том, что ошибка возникает после ob_start();. Ошибка пишется в буфер и не выводится на экран.
Ответ написан
@gro
А всего-то надо было смотреть не в браузер, а в "исходный код страницы". Я прав?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы