[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: include VS require
ak167
1-ый вопрос:
Есть папка designe, в ней еще несколько папок: one, two, free и в каждой из них шаблон для сайта. $conf['design'] = one;
Шаблон я подключаю так: include ("designe/$conf['design']/index.php"); Однако, так не работает!!!
А вот так работает: include ("designe/one/index.php"); но мне так не надо. Мне нужно чтобы данные для подключениия дизайна читались из $conf['design']. Как это сделать?

2-ой вопрос:
В чем отличия require от include?






Спустя 8 минут, 6 секунд (20.12.2010 - 09:18) Elfist написал(а):
2-ой вопрос:
В чем отличия require от include?


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

Include в отличии от require включает файлы по мере выполнении скрипта. То есть сценарий выполняется пошагово и дойдя до include переключается на выполнение включаемого файла.

Include применять там, где требуется динамическое включение файлов, а require там, где этого не требуется.

Спустя 6 минут, 28 секунд (20.12.2010 - 09:25) Basili4 написал(а):
Elfist
читайте php.net
это
Цитата (Elfist @ 20.12.2010 - 10:18)
Конструкция require включает файлы перед тем, как скрипт начинает свое выполнение, то есть сначала полностью из кусочков собирается весь скрипт, а затем полностью выполняется.

Include в отличии от require включает файлы по мере выполнении скрипта. То есть сценарий выполняется пошагово и дойдя до include переключается на выполнение включаемого файла.

Include применять там, где требуется динамическое включение файлов, а require там, где этого не требуется.


уже старо


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

Спустя 1 час, 49 минут, 15 секунд (20.12.2010 - 11:14) linker написал(а):
include("designe/" . $conf['design'] . "/index.php");

Спустя 9 минут, 29 секунд (20.12.2010 - 11:24) twin написал(а):
Basili4
Цитата
Конструкция require включает файлы перед тем, как скрипт начинает свое выполнение, то есть сначала полностью из кусочков собирается весь скрипт, а затем полностью выполняется.
Не может быть, что в мануале написана такая чушь...

Спустя 35 минут, 3 секунды (20.12.2010 - 11:59) Basili4 написал(а):
twin
это не моя цитата

Спустя 1 минута, 7 секунд (20.12.2010 - 12:00) Basili4 написал(а):
моя эта
Цитата (Basili4 @ 20.12.2010 - 10:25)
уже старо


Спустя 4 минуты, 24 секунды (20.12.2010 - 12:04) kovaldm написал(а):
php.su
Цитата
PHP преобразует сценарий во внутреннее представление, анализируя строки сценария по очереди, пока не доходит до конструкции include. Дойдя до include, PHP прекращает транслировать сценарий и переключается на указанный в include файл. Таким образом из-за подобного поведения транслятора, быстродействие сценария снижается, особенно при большом колличестве включаемых с помощью include файлов. С require таких проблем нет, поскольку файлы с помощью require включаются до выполнения сценария, то есть на момент трансляции файл уже включен в сценарий.

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

Спустя 1 минута, 41 секунда (20.12.2010 - 12:06) Basili4 написал(а):
kovaldm
сам проверял

if (false)

require('file.php');

не подключает.

Спустя 10 минут, 10 секунд (20.12.2010 - 12:16) kovaldm написал(а):
Как проверял-то? Он наверно подключает, но не выполняет код который в file.php

Спустя 2 минуты, 16 секунд (20.12.2010 - 12:18) sergeiss написал(а):
Цитата (Basili4 @ 20.12.2010 - 13:06)
сам проверял

if (false)

require('file.php');

А я вот задумался - как ты проверл, что он не подключен?


Вообще, в хэлпе сказано, что
Цитата
require() is identical to include() except upon failure it will also produce a fatal E_ERROR level error. In other words, it will halt the script whereas include() only emits a warning (E_WARNING) which allows the script to continue.

See the include() documentation for how this works.

И ни слова не сказано про то, что, якобы, сначала подключается, а потом обрабатывает. Более того, прямо сказано, что они идентичные, с одним только исключением.

Спустя 1 минута (20.12.2010 - 12:19) twin написал(а):
kovaldm
Кто то один очень давно написал эту дурь, а все копипастят с тех пор.
require точто так же как и include работают в циле, что было бы совершенно невозможно, если бы это было бы правдой.

Спустя 2 минуты, 13 секунд (20.12.2010 - 12:21) Basili4 написал(а):
sergeiss
содержимое file.php

echo __FILE__;

соответственно если не подключен то строки не будет если подключен то будет.

Или Я ошибаюсь

Спустя 57 секунд (20.12.2010 - 12:22) kovaldm написал(а):
Так чтож различие только в том что require отсановит скрипт, include нет?

Спустя 15 секунд (20.12.2010 - 12:23) Basili4 написал(а):
sergeiss
вот и я говорю читать надо php.net а всякие там SU ни разу не пруф.


Спустя 3 минуты, 31 секунда (20.12.2010 - 12:26) sergeiss написал(а):
Цитата (Basili4 @ 20.12.2010 - 13:21)
Или Я ошибаюсь

У тебя ошибка в методике проверки :)
Твоя метода проверки аналогична такой: :) :) :)
if( false )
echo 'Вы тут не находитесь';

Данный код бессмысленный, вот в чем проблема. Аналогично и с инклудом после ТАКОГО ифа.

Спустя 1 минута, 33 секунды (20.12.2010 - 12:28) Basili4 написал(а):
sergeiss
я бы сказал вот так
if( false )
echo 'Вас тут не должно быть';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.