7 ответов:
вы найдете различия, объясненные в подробном руководстве PHP на страница
require:
requireидентиченincludeза исключением того, что при неудаче он также приведет к фатальномуE_COMPILE_ERRORОшибка уровня. Другими словами, он остановит скрипт, тогда как include только выдает предупреждение (E_WARNING), что позволяет продолжить сценарий.посмотреть @efritz это пример
requireвыдаст PHP фатальную ошибку, если файл не может быть загружен. (Выполнение останавливается)
includeвыдает предупреждение, если файл не может быть загружен. (Исполнение продолжается)вот хороший иллюстрация включает и требует разницы:
от:разница между require и include php (by Robert; Nov 2012)
использовать
includeЕсли вы не возражаете, чтобы ваш скрипт продолжался без загрузки файла (в случае, если он не существует и т. д.), и вы можете (хотя и не должны) жить с предупреждающим сообщением об ошибке.используя
requireозначает, что ваш скрипт остановится, если он не может загрузить указанный файл, и выдаст фатальную ошибку.
ключевая разница между
require()иinclude()Если выrequire()файл, который не может быть загружен (например, если его там нет), то он генерирует фатальную ошибку, которая полностью остановит выполнение страницы, и больше не будет генерироваться вывод. С другой стороны, если выinclude()файл, который не может быть загружен, то это будет просто выдать предупреждение и продолжить строительство страницы.
как указывали другие, единственное различие заключается в том, что require выдает фатальную ошибку, а include - уловимое предупреждение. Что касается того, какой из них использовать, мой совет-придерживаться включения. Зачем? потому что вы можете поймать предупреждение и создать значимую обратную связь с конечными пользователями. Рассмотрим
// Example 1. // users see a standard php error message or a blank screen // depending on your display_errors setting require 'not_there'; // Example 2. // users see a meaningful error message try { include 'not_there'; } catch(Exception $e) { echo "something strange happened!"; }NB: например 2 для работы вам нужно установить обработчик ошибок-исключений, как описано здесь http://www.php.net/manual/en/class.errorexception.php
function exception_error_handler($errno, $errstr, $errfile, $errline ) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } set_error_handler("exception_error_handler");
<?PHP echo "Firstline"; include('classes/connection.php'); echo "I will run if include but not on Require"; ?>очень простой практический пример с кодом. Отобразится первое эхо. Независимо от того, используете ли вы include или require, потому что его запуски перед include или required.
чтобы проверить результат, во второй строке кода намеренно дают неправильный путь к файлу или сделать ошибку в имени файла. Таким образом, второе эхо, которое будет отображаться или нет, будет полностью зависеть от того, используете ли вы требуются или включить.
Если вы используете требуются второе эхо не будет выполнять, но если вы используете включить не имеет значения, какая ошибка приходит вы увидите результат второго Эха тоже.
в случае включения программа не будет завершаться и отображать предупреждение на браузере, с другой стороны, требуется программа завершится и отобразит фатальную ошибку в случае, если файл не найден.

Comments