Разница между require, include, require once и include once?

в PHP:

  • когда я должен использовать require и include?
  • когда я должен использовать require_once и include_once?

26 ответов


здесь require и include_once Как хорошо.

так что ваш вопрос должен быть...

  1. когда я должен использовать require и include?
  2. когда я должен использовать require_once и require

ответ на 1 описывается здесь.

функция require () идентична функции include (), за исключением того, что она обрабатывает ошибки по-разному. При возникновении ошибки функция include() выдает предупреждение, но скрипт продолжит выполнение. Требовать() генерирует фатальную ошибку, и скрипт остановится.

ответ на 2 можно найти здесь.

оператор require_once() идентичен require (), за исключением PHP будет проверять, включен ли файл уже, и если да, то не включать (требовать) его снова.


использовать

  • требуются
    когда файл требуются вашим приложением, например, важным шаблоном сообщения или файлом, содержащим переменные конфигурации, без которых приложение сломается.

  • им require_once
    когда файл содержит содержимое, которое приведет к ошибке при последующем включении, например function important() { /* important code */} определенно нужен в вашем приложении, но поскольку функции не могут повторно объявляться не следует.

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

  • include_once
    необязательные зависимости, которые могут привести к ошибкам при последующей загрузке или, возможно, удаленному включению файла, которые вы не хотите повторять из-за Протокол HTTP накладных

но в основном, это зависит от вас, когда использовать.


мое предложение-просто использовать require_once 99,9% времени.

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

если вы требуете / включая код, который выполняется на месте, это процессуальный код, и вам нужно узнаете новую парадигму. Как объектно-ориентированное программирование, функциональное программирование или функциональное программирование.

если вы уже делаете OO или функциональное программирование, используя include_once деле отсрочка где в стеке вы нашли ошибку/ошибки. Вы хотите знать, что функция do_cool_stuff() не доступен, когда вы идете, чтобы вызвать его позже, или момент, когда вы ожидаете, что он будет доступен требуя библиотеке? Как правило, лучше знать сразу если что-то вам нужно и ожидать недоступно, просто используйте require_once.

альтернативно, в современном ООП, просто Автозагрузка ваши классы при использовании.


разница между функциями _once и без функций _once: без _once код будет включен снова, тогда как с _once функциями PHP отслеживает включенные файлы и будет включать его только один раз.

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


include() выдаст предупреждение, если он не может включить файл, но остальная часть скрипта будет запущена.

require() появится E_COMPILE_ERROR и остановите скрипт, если он не может включить файл.

на include_once() и require_once() функции не будут включены в файл второй раз, если он уже был включен.

см. следующую документацию страницы:


всякий раз, когда вы используете require_once() можно использовать в файле, чтобы включить другой файл, когда вам нужен вызываемый файл только один раз в текущем файле. Вот в Примере у меня есть test1.РНР.

<?php  
echo "today is:".date("Y-m-d");  
?>  

и в другом файле, который я назвал test2.в PHP

<?php  
require_once('test1.php');  
require_once('test1.php');  
?>

когда вы смотрите m, требующий файл test1 дважды, но файл будет включать test1 один раз и для вызова во второй раз это будет проигнорировано. И без останавливать покажет выход один раз.

всякий раз, когда вы используете "include_once ()" можно использовать в файле, чтобы включить другой файл, когда вам нужен вызываемый файл более одного раза в текущем файле. Вот в Примере у меня файл test3.РНР.

<?php  
echo "today is:".date("Y-m-d");  
?> 

и в другом файле, который я назвал test4.в PHP

<?php  
include_once('test3.php');  
include_once('test3.php');  
?>

как вы смотрите m, включая файл test3 будет включать файл один раз, но остановить дальнейшее выполнение.


используйте "include" для многоразового использования PHP шаблоны. Используйте "require" для требуемых библиотек.

"*_once " приятно, потому что он проверяет, загружен ли файл уже или нет, но это имеет смысл только для меня в "require_once".


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

require() идентичен include() кроме случаев неудачи, это также приведет к фатальному E_ERROR Ошибка уровня.

include создает только E_WARNING ошибка, если она терпит неудачу, которая более или менее молчит.

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


на *_once():

include_once() может использоваться в случаях, когда один и тот же файл может быть включен и оценен более одного раза во время конкретного выполнения скрипта, поэтому в этом случае это может помочь избежать таких проблем, как переопределения функций, переназначения переменных значений и т. д.

то же самое относится и к require_once() of курс.


ссылки: require(), include_once()


с require файл должен существовать, если он не будет отображаться ошибка; в то время как с include - если файл не существует, то страница продолжит загрузку.


require приведет к фатальной ошибке (E_COMPILE_ERROR) и остановит скрипт.

включить будет выдавать только предупреждение (E_WARNING), и скрипт будет продолжаться.

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

Если a.php является вызовом скрипта PHP b.php с помощью оператора require_once() и не находит b.php, a.php останавливает выполнение, вызывая фатальную ошибку.


требуйте критических частей, как утверждение и включите все другие.

несколько включает в себя просто очень плохой дизайн и его следует избегать вообще. Итак, * _once на самом деле не имеет значения.


включить / требуются вы также можете включить один и тот же файл несколько раз:

require () идентичен include () за исключением того, что при сбое он также приведет к фатальной ошибке уровня E_COMPILE_ERROR. Другими словами, он остановит сценарий, тогда как include() только выдает предупреждение (E_WARNING), которое позволяет сценарию продолжить.

им require_once / include_once

идентично include / require за исключением PHP проверит, был ли файл уже включен, и если да, то не включать (требовать) его снова.


вы должны сохранить определения классов и функций, организованные в файлах.

используйте require_once для загрузки зависимостей (классов, функций, констант).

требуются в шаблон-как загружать файлы.


включить()

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

require ()

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

include_once ()

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

им require_once()

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


ответ после 7 лет для 2018

этот вопрос был задан семь лет назад, и ни один из ответов не дает практической помощи для вопроса. В современном PHP программировании вы в основном используете required_once только один раз, чтобы включить класс autoloader (composer autoloader часто), и он будет загружать все ваши классы и функции (файлы функций должны быть явно добавлены в composer.json файл, который будет доступен во всех других файлах). Если по какой-либо причине ваш класс не загружается из автозагрузчик вы используете require_once, чтобы загрузить его.

в эти дни вы используете require только для разделения большого куска файла PHP. Это в основном определение большого массива. В таких случаях вы используете только require не require_once.

 <?php
// arr.php
return ['x'=>'y'];

 <?php
//main.php
$arr= require 'arry.php'

если файл, который вы собираетесь использовать, содержит что-то исполняемое или объявляет некоторые переменные, которые вам почти все время нужно использовать require, потому что если вы используете require_once в другом месте ваш код не будет выполняться, и/или переменные не начнет молча, вызывая ошибки, которые абсолютно трудно определить.

нет практического случая использования для include и include_once действительно.


С руководство:

require() идентичен include() кроме случаев неудачи, это также приведет к фатальному E_COMPILE_ERROR Ошибка уровня. Другими словами, он остановит скрипт, тогда как include() только выдает предупреждение (E_WARNING), который позволяет сценарию продолжить.

то же самое верно для _once() вариантов.


include() будет генерировать предупреждение, когда он не находит файл, но require_once() приведет к фатальной ошибке.

другое дело, если файл включен раньше. Тогда require_once() не будет включать его снова.


я использовал функцию, как показано ниже:

function doSomething() {
    require_once(xyz.php);
    ....
}

в xyz были объявлены постоянные значения.РНР.

я должен вызвать эту функцию doSomething () из другого файла скрипта PHP.

но я наблюдал поведение при вызове этой функции в цикле, для первой итерации doSomething () получал постоянные значения в xyz.php, но позже каждой итерации doSomething() не удалось получить постоянные значения, объявленные в xyz.php.

я решил моя проблема при переключении с require_once() to include() обновленными doSomething() код, как показано ниже:

function doSomething() {
    include(xyz.php);
    ....
}

теперь каждый вызов итерации doSomething() получает постоянные значения, определенные в xyz.php.


В возрасте PSR-0 / PSR-4 autoloaders может быть совершенно ненужным использовать любой из операторов, если все, что вам нужно, это сделать некоторые функции / классы доступными для вашего кода (конечно, вам все равно нужно require_once сам автозапуск в вашем файле начальной загрузки и include шаблоны, если вы все еще используете PHP в качестве шаблонизатора).


  1. использовать требуются функция, когда вам нужно загрузить любой класс, функцию или зависимость.

  2. использовать включить функция, когда вы хотите загрузить файл в стиле шаблона

Если вы все еще не знаете, просто использовать им require_once за все время.


  1. когда следует использовать require или include?

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

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

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

  2. когда следует использовать require_once или require?

    основная разница между require и require_once is require_once проверит, включен ли файл уже или нет, если он уже включен, то он не будет включать файл, тогда как require функция будет включать файл независимо от является ли файл уже включен или нет.

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


Они все способы включения файлов:

Require означает, что ему это нужно. Require_once означает, что он понадобится, но только один раз. Включить означает, что он будет включать файл, но ему не нужно его продолжать.

примеры:

требуется 'filename' Require_once 'имя файла' Включить 'filename'

существует также функция include_once, которая включает файл один раз.

Include_once 'filename'

Не используйте капитал письма, которые я печатаю с телефона.

Спасибо за ваше время.


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

от английского слова требуются, PHP говорит, что выполнение страницы или файла зависит от требуемого файла.

по моему опыту, это норма требовать важные файлы, такие как файлы конфигурации, базы данных классы и другие важные утилиты.


на днях меня спросили, в чем разница между include и require в PHP. Они, по-видимому, функционируют одинаково, но есть существенная разница.

во-первых, ни include, ни require являются функциями, они являются конструкциями. Поэтому нет необходимости вызывать их с помощью круглых скобок, таких как include('file.php'); вместо этого он предпочитает использовать include ' file.на PHP'.

разница между include и require возникает, когда включаемый файл не может быть найдено: include выдаст предупреждение (E_WARNING), и скрипт продолжит работу, тогда как require выдаст фатальную ошибку (E_COMPILE_ERROR) и остановит скрипт. Если включаемый файл имеет решающее значение для остальной части сценария, работающего правильно, вам нужно использовать require.

вы должны забрать любые фатальные ошибки, вызванные require во время процесса разработки, и иметь возможность разрешить их перед выпуском скрипта в дикую природу; однако вы можете рассмотреть возможность использования include to положите на место план B, если это не так прямолинейно: -

<?php
if (@include 'file.php') {
    // Plan A
} else {
    // Plan B - for when 'file.php' cannot be included
}

в этом примере include используется для захвата файла.php’, но если это не удается, мы surpress предупреждение с помощью @ и выполнить некоторый альтернативный код. include вернет false, если файл не может быть найден.

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


require имеет большие накладные расходы, чем include, так как он должен сначала проанализировать файл. Замена requires С includes часто является хорошим методом оптимизации.


просто используйте require и include.

потому что подумайте, как работать с include_once или require_once. Это ищет данные журнала, которые сохраняют включенные или требуемые файлы PHP. Так что это медленнее, чем include и require.

if (!defined(php)) {
    include 'php';
    define(php, 1);
}

просто используя такой...