![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| DEIN |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.12.2006 Где: Вильнюс (Литва) Репутация: нет Всего: нет |
Здраствуйе,
Буду краток. Изучаю язык PHP. Основные назначения директив include и require я усвоил. Опишите, пожалуйста, в чем отличия между ними? Спасибо за внимание. П.с.: Программист я самый (: начинающий, поэтому большая просьба объяснять как можно примитивнее и (желательно) с примерами (тоже примитивными). |
|||
|
||||
| Serkys |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
||||
|
||||
| Voventus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.12.2004 Где: г. Владивосток Репутация: нет Всего: нет |
DEIN, include("") подключает файл непосредственно во время выполнения сценария. require("") же подключает файл уже до начала транслирования...
Таким образом include("") можно использовать в циклах
Цикл подключает по-очереди файлы "file1.php", "file2.php", "file3.php", "file4.php", "file5.php"... При попытке проделать то же самое, но с require(""), интерпретатор выдаст ошибку... |
|||
|
||||
| Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: нет Всего: 72 |
И если в сценарии нету очаровывающей многозначительности и файлы должны быть подключены в обязательном порядке и без затей - стоит использовать require. Это увеличивает скорость выполнения сценария.
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Так... тогда объясните, почему это работает как положено и что я упустил:
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| DEIN |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.12.2006 Где: Вильнюс (Литва) Репутация: нет Всего: нет |
Большое спасибо всем, кто пытался мне объяснить и огромное спасибо тем, кому это удалось сделать! (:
|
|||
|
||||
| pirrat |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.2.2007 Репутация: нет Всего: нет |
fа теперь если не секрет,откуда этот код? ну уж очень он знаком )) Сорри за оФФтоп... |
||||
|
|||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
pirrat,
Код собственного сочинения. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Если используется require и файл отсутствует - выполнение сценария будет прервано, include же выдаст только ошибку и выполнит код до конца.
|
|||
|
||||
| ZlojEzh |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.10.2005 Где: Киев, Украина Репутация: 10 Всего: 15 |
DEIN, не спешите Вам наговорили много чепухи
сорри, цепляюсь к словам, но все же: ошибки внутри подключаемого файла будут видны и в первом и во втором случаях одинаково (в зависимости от настроек пхп) разница есть только в уровне ошибки, генерируемой при отсутствии подключаемого файла: require - fatal error, include - warning как правильно сказал CyClon:
без обид это полный бред require, также как и include, обрабатывается при выполнении скрипта, а не при трансляции и приведенный Вами пример будет отлично работать и с require (если, конечно, существуют файлы file1.php и т.д.) опять же, бред напоследок кусок из мануала:
|
||||||||
|
|||||||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
Мануалы читать никто не пробовал, кроме ZlojEzh?
Есть замечательный такой ресурс, php.net.
Перевод: Оператор require() подключает и исполняет указанный файл. Операторы require() и include() идентичны во всех случаях, за исключанием того, как они обрабатывают ошибки (критические). Они оба порождают предупреждения об ошибках, однако require() генерирует Fatal Error. Другими словами, не старайтесь использовать require() если вы не хотите, чтобы подключаемый файл аварийно завершал ход выполнения текущего скрипта. Оператор include() работает иначе в этом случае - скрипт продолжит выполнение, не обращая внимания на ошибки. Удостоверьтесь так же, что параметр include_path установлен в верное значение. Замечание: до PHP версии 4.0.2 справедливо следующее: оператор require() всегда будет пытаться прочитать указанный файл, даже если строка кода с этим оператором никогда не будет выполнена. Оператор if не влияет на вызов строки с оператором require(). Однако, если строка, в которой расположен оператор require(), не будет выполнена, код, находящийся в подключаемом файле, также не будет исполнен. Циклы тоже не влияют на условие выполнения оператора require(). Несмотря на то, что цикл должен подключать указанный файл несколько раз, оператор require() выполнится только 1 раз. -------------------- ...все в мире относительно |
|||
|
||||
| CyClon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
require рекомендуют использовать для файлов, без которых данный сценарий работать не сможет (т.е. конфиги, файлы классов и т.д.). Обычно используется require_once - который позволяет подключить данный файл всего лишь один раз. Принципиальной разницы нет, просто новички могут случайно подключить этот же файл второй раз. Данная функция избавит их от данной неприятности.
PS: Если не стоит:
Добавлено @ 13:46 Nicholas_S, ключевая фраза до PHP версии 4.0.2. Можно жить сегодняшним днем, завтрашним, но не нужено жить вчерашним. |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |