Разрыв PHP-кода при вызове функции require - PullRequest
1 голос
/ 17 января 2012

У меня есть фрагмент кода следующим образом

echo "calling require";
require ('../includes/functions/database.php');
echo 'require called';

мой код повторяет первую команду и печатает «Требуется вызов».

, как только он вызывает функцию require, мой код прерывается и больше не выполняется, в результате я не могу напечатать последнее эхо-запрос "require named"

В чем может быть причина?

Ответы [ 5 ]

4 голосов
/ 17 января 2012

Пусть php покажет сообщения об ошибках, и вы найдете ошибку довольно быстро.

Добавьте эти строки, прежде чем требовать

ini_set('display_errors', true);
error_reporting(E_ALL);
0 голосов
/ 17 января 2012

Требование файла в PHP с использованием относительного пути должно быть запрещено.Относительный путь зависит от того, какой файл PHP сначала вызывается браузером.Всегда требуйте или включайте файлы, используя абсолютный путь.

0 голосов
/ 17 января 2012

Если вы просто хотите, чтобы ваш код выполнялся независимо от того, сработал ли require, вы можете использовать include вместо require, поскольку он генерирует предупреждение вместо фатальной ошибки.

0 голосов
/ 17 января 2012

Требуемый файл:

  • не существует
  • существует, но ваш относительный путь не соответствует его местоположению
  • не читается
  • имеет синтаксические ошибки

Причиной может быть любое из них.

0 голосов
/ 17 января 2012

Файл может существовать, но может быть нечитаемым.Используйте is_readable(), чтобы проверить это:

if(is_readable('../includes/functions/database.php')) {
   echo('ok!');
}

Также может быть ошибка или die() в файле database.php, который препятствует дальнейшему выполнению.Проверьте файл database.php на наличие ошибок и die / exit вызовов.


Добавьте error_reporting(E_ALL); ini_set('display_errors', 'On'); в начале своего кода, чтобы отладить ошибки, как предложил Салман А. в комментариях.

...