3.23 Czym różni się include() i require()?

Ostatnia modyfikacja: 2003-04-01 16:34:52

Podstawową różnicą jest to, że przy require() plik jest zawsze wstawiany - takie copy/paste. Przy include() plik jest wstawiany tylko jeśli ta instrukcja będzie parsowana.
Przykład: mamy plik require.inc.php:

<?php
 
echo 'coś tam';
 echo 
'coś innego';
?>

No i chcemy to wykorzystać

<?php
 
if ($test) {
   require(
'require.inc.php');
 }
?>

zawsze zostanie zamienione na

<?php
 
if ($test) {
   echo 
'coś tam';
   echo 
'coś innego';
 }
?>

Natomiast jeśli zamiast require() użyjemy include(), to plik zostanie wstawiony tylko jeśli zostanie spełniony warunek $test. Dlatego też przy instrukcjach warunkowych ma sens tylko stosowanie include().

Dodatkowo trzeba pamiętać, że require() jest wykonywane tylko raz. Nie ma więc sensu wstawianie require() do pętli, w czasie której zmienia się nazwa pliku do pobrania, ponieważ plik ten zostanie wstawiony tylko za pierwszym razem, a każdej następnej iteracji będzie używany kod wstawiony za pierwszym razem.


Powrót do indeksu