require and include

dimardi

Guest
require and include

Кто нибудь может пояснить на примере отличие сабжевых операторов.
Сколько книг не прочел так и не вкурил на практике :(
 

webman

Новичок
include можно выполнять условно ( if (true) )
require выполнится в любом случае
 

Фанат

oncle terrible
Команда форума
webman
это ты сам догадался? или тебе подсказал кто?
 

SiMM

Новичок
> require выполнится в любом случае
Ой ли?
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
if (false) require 'несуществующий в файловой системе файл';
?>
Почему-то я не наблюдаю
PHP Warning: main(несуществующий в файловой системе файл): failed to open stream: No such file or directory in test.php on line 4
PHP Fatal error: main(): Failed opening required 'несуществующий в файловой системе файл' (include_path='.;c:\php4\pear') in test.php on line 4
Читайте мануал, вьюноша, в нём истина.
 

webman

Новичок
tony2001
В.Гилмор PHP4. Учебный курс

-~{}~ 21.09.05 01:42:

SiMM
любите вы поиздеваться и попридераться
 

tony2001

TeaM PHPClub
>В.Гилмор PHP4. Учебный курс
а что именно там написано? (просто интересно, книгу и автора в свой собственный черный список я уже добавил)

btw,
require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless. Be sure to have an appropriate include_path setting as well.
 

webman

Новичок
tony2001
цитирую :)
...У функции include() есть одна интересная особенность - ее можно выполнять условно. Например, если вызов функции включен в блок команды if, то файл включается в программу лишь в том случае, если условие if истинно. Если функция include() используется в условной команде, то она должна быть заключена в фигурные скобки или в альтернативные ограничители.
...
... Файл, определяемый параметром require(), включается в сценарий независимо от местонахождения require() в сценарии. Например при вызове require() в блоке if при ложном условии файл все равно будет включен в сценарий.
 

phobos

Новичок
webman
да да и это не единственная книга
наш препод тоже само пытался нам впарить тоже в какой то книге вычитал....
 

jdoe

Новичок
такое поведение (описанное в книге) действительно имело место быть в какой-то древней версии PHP. кажется еще до 4-ки. =)
 

webman

Новичок
tony2001
теперь буду знать, что бред
пойду куплю другую книгу :)
 

tristram

Guest
мораль басни: какая бы ни была книга надо всё ручками пробовать. а лучше вообще без книжек :) доки больше чем достаточно.
 

berkut

Новичок
[off]абалдеть что я нашёл в мануале!
PHP:
return.php
<?php
$var = 'PHP';
return $var;
?>

testreturns.php
<?php
$foo = include 'return.php';
echo $foo; // prints 'PHP'
?>
Ни разу нигде не видел и не читал о таких выкрутасах.
 

jdoe

Новичок
>Ни разу нигде не видел и не читал

ибо читать надо мануал, а не всякое г...но.
 
Сверху