[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разница между инструкциями include и require
@dmir@l
мануал не сообщает в чем разница..если повторился то сорри huh.gif



Спустя 3 минуты, 32 секунды (3.02.2011 - 03:02) waldicom написал(а):
Разница в том, что один генерирует ошибку (include) и скрипт работает дальше, а другой прерывает исполнение скрипта (require).

Спустя 3 минуты, 24 секунды (3.02.2011 - 03:05) @dmir@l написал(а):
waldicom

а причем здесь ошибка если код рабочий?)

Спустя 3 минуты, 50 секунд (3.02.2011 - 03:09) waldicom написал(а):
Цитата (@dmir@l @ 3.02.2011 - 01:05)
а причем здесь ошибка если код рабочий?)

Эти инструкции подключают файлы. Если файла не существует, будет ошибка (include) или сто скрипта (require)

Спустя 3 минуты, 10 секунд (3.02.2011 - 03:12) @dmir@l написал(а):
Вот кое что нарыл...

В отличие от require директива include позволяет включить код в сценарий во время выполнения сценария..

waldicom

что можешь добавить по этому поводу?

Спустя 2 минуты, 15 секунд (3.02.2011 - 03:14) waldicom написал(а):
Скажу, что include и require по большому счету одно и тоже, за исключением того факта, что я описал выше.

Спустя 53 секунды (3.02.2011 - 03:15) @dmir@l написал(а):
waldicom

и все??? больше никаких особенностей нет между этими директивами?

Спустя 3 минуты, 54 секунды (3.02.2011 - 03:19) waldicom написал(а):
Цитата (@dmir@l @ 3.02.2011 - 01:15)
и все??? больше никаких особенностей нет между этими директивами?

От того, что ты задашь этот вопрос еще раз, ответов на него не прибавится wink.gif

Спустя 2 минуты, 38 секунд (3.02.2011 - 03:22) @dmir@l написал(а):
все! нашел ответ на свой желаемый вопрос!

Меня интересовала данная особенность:

- include - файл включается во время выполнение сценария
- require - файл включается до выполнения сценария

Спасибо! +1 в репу biggrin.gif

Спустя 3 минуты, 39 секунд (3.02.2011 - 03:25) waldicom написал(а):
Да, действительно, это тоже. Сам про такую особенность забыл/не знал.

Спустя 1 минута, 47 секунд (3.02.2011 - 03:27) @dmir@l написал(а):
waldicom

Ну спасибо хоть сказал про ошибку!
Я помню была тема о сравнении этих двух типов, но не помнил точно..поэтому старался услышать именно тот ответ, который был произнесен ранее.. smile.gif

Спустя 5 часов, 12 минут, 15 секунд (3.02.2011 - 08:39) twin написал(а):
Цитата
все! нашел ответ на свой желаемый вопрос!

Меня интересовала данная особенность:

- include - файл включается во время выполнение сценария
- require - файл включается до выполнения сценария
Покажи, где ты нашел эту гадость? Как малые дети всякую дрянь в рот тащите...

Спустя 48 минут (3.02.2011 - 09:27) Basili4 написал(а):
@dmir@l
И что такое на php.net написанно. это уже лет сто как не так. сам
проверь

if (fasle)
{
require "file.php";
}

файл file.php
<?php echo "Есть" ?>

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

Спустя 45 минут, 5 секунд (3.02.2011 - 10:12) twin написал(а):
Basili4
Пример немного некорректен. Тут можно возразить, мол файл все же подключился, но код в нем не исполнился, так как в условии false.

Корректно это может выглядеть так. Берем 3 файла.
index.php
<?php

if(time() % 2 == 0)
require 'test1.php';


test1.php
<?php

require 'test2.php';


test2.php
<?php

echo 'Вот оно как.';

и делаем выводы.

Спустя 24 минуты, 28 секунд (3.02.2011 - 10:37) sergeiss написал(а):
Цитата (@dmir@l @ 3.02.2011 - 03:58)
мануал не сообщает в чем разница..

Не знаю, где люди такие мануалы находят smile.gif "Мой", скачанный по ссылке в моей же подписи, говорит так:
Цитата
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.

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


Короче говоря, читай первоисточники, а не всякую лабуду smile.gif И будет тебе счастье.

Спустя 1 час, 16 минут, 33 секунды (3.02.2011 - 11:53) waldicom написал(а):
Цитата (Basili4 @ 3.02.2011 - 07:27)
проверь сам никогда файл не будет подключен. Единственное отличие Владиком уже указал.

Хм... видимо не все так безоблачно... Смотри (обращай внимание на имена файлов и на переменные):

файл file1.php
<?php echo "yes" ?> 


файл 1.php
<?php
if (fasle) {
require "files.php";
}
?>


Образаем внимание на if, там стоит не false, а fasle (перепутаны буквы).
Так вот при выполнении
php 1.php

я получаю:
waldicom@wkm:~/scripts$ php 1.php
Цитата
PHP Notice:  Use of undefined constant fasle - assumed 'fasle' in /home/waldicom/scripts/1.php on line 6
PHP Warning:  require(files.php): failed to open stream: No such file or directory in /home/waldicom/scripts/1.php on line 8
PHP Fatal error:  require(): Failed opening required 'files.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/waldicom/scripts/1.php on line 8


Т.е. пхп пытается открыть файл, который не существует (files.php пытается открыть, но на винте лежит файл file1.php)

Теперь, если поставить правильный файл, то echo выводится.
НО!
Если поменять fasle на правильную константу false и поставить правильный файл, то ошибки исчезают, но и echo не выводится.

Мистика? Или я где-то что-то не понял?


На всякий случай версия пхп:
waldicom@wkm:~/scripts$ php -v
PHP 5.3.3-1ubuntu9.3 with Suhosin-Patch (cli) (built: Jan 12 2011 16:07:38)
Copyright © 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright © 1998-2010 Zend Technologies
with Suhosin v0.9.31, Copyright © 2007-2010, by SektionEins GmbH


Спустя 31 минута, 4 секунды (3.02.2011 - 12:25) Basili4 написал(а):
Это особеность пыха. fasle не известная константа если пых находит такую то он выдает нотис и создает такую константу с этим же содержимым и если проверить такую переменную на истеричность истенность она будет истенной.

Спустя 5 часов, 44 минуты, 42 секунды (3.02.2011 - 18:09) @dmir@l написал(а):
sergeiss
twin
Basili4

спасибо добрые люди wink.gif


_____________
=)
Быстрый ответ:

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