Что лучше использовать? require или include? Или их аналоги с _once? Сейчас использую самописную функцию: PHP: function requireFile($file) { if(file_exists($file)) { require_once $file; } else { echo 'File '.$file.' doesn\'t exist'; } } плюсы, которые я вижу в этой функции: выведет ошибку(форматирование которой определяешь самостоятельно) даже при display_errors off в настройках PHP вывод случайно подключенного несколько раз файла - не возможен P.S. всего в проекте (пока) подключаю до 10 файлов (.php, .html), так что скорость не критична
Интересно , а в каком смысле убивает ? Время выполнения дольше ? И , если честно , мне даже после прочтения мануала не ясна разница между ним и include. Разница в обработке кода до (require) и во время (include) , но конкретного применения придумать не могу
на форуме для новичков крутятся новички? require требует обязательного присутствия подключаемого файла и выдает критическую ошибку при его отстутствии, то есть страница прекращает загружаться вовсе, а include — выдает лишь предупреждение и загружает остальную часть страницы. Еще разница в том, что include может возвращать значение true или false пример: PHP: if (include './vars.php') echo 'TRUE'; else echo 'FALSE'; если файла не существует - выведет FALSE и продолжит выполнение скрипта require в подобном случае выведет fatal_error и остановит дальнейшее исполнение скрипта
Читал в какой-то книжке, что include советуют использовать для подключения файлов шаблонов, а так require, сам использую require всегда, хорошо это или плохо - решать каждому самостоятельно
include - подключит файл, если до строки с инклюдом дойдет дело. require - В ЛЮБОМ СЛУЧАЕ подключит перед началом работы скрипта файл. PHP: <? $var=false; if($var) { include('somefile.php'); } не подключится файл. а теперь так: PHP: <? $var=false; if($var) { require('somefile.php'); } и на момент $var=false; somefile.php УЖЕ будет подгружен.
krow7 Это твои собственные выводы или где-то есть такая информация? Мне кажется, что оба варианта подключаются только в случае, если вызов конструкции произошёл. А если нет - то нет. Во всяком случае анализ синтаксиса не происходит. Я специально в подключаемом файле понаделал синтаксических ошибок - и ничего, на ошибки не ругается, если $var = false;
sobachnik не я придумал, а так и есть. вы можете всегда проверить http://www.php.su/functions/?require