Code einbinden

Immer wenn Sie eine Klassendatei unbedingt inkludieren müssen, dann benutzen Sie require_once. Benötigen Sie hingegen eine Datei nur bedingt, z.B. in Factory-Methoden, verwenden Sie include_once. Beide stellen sicher, dass die Datei nur einmal eingebunden wird. Beide Funktionen benutzen die gleiche Liste zur Verwaltung der bereits eingebundenen Dateien. Sie müssen sich über eine Mischung aus beiden Funktionsaufrufen keine Gedanken machen - eine Datei, die per require_once eingebunden wurde, wird nicht erneut eingebunden mit include_once.

include_once und require_once sind Anweisungen, nicht Funktionen. Deshalb sollten die Dateinamen nicht in Klammern eingeschlossen werden.

Kommentare (Previous) PHP-Code-Tags (Next)
Last updated: Sun, 19 Dec 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: StanE
I think that since SPL is part of PHP for a long time now, no includes should be used at all anymore. Namespaces have much more advantages. They automatically include files and they do this only when it is required (so memory is saved - especially if you use frameworks). They also define the folder structure (which is an advantage imho, not a disadvantage) so you don't have to care how much folders you have to go down or up and the namespaces prevent name collisions. Also you can specify the file extension(s) through the SPL at one place, instead writing them in every include statement (imagine your hoster is a cool badass and is using PHP 7 on the server but your PHP application needs to run under PHP 5 so you have to use .php5 file extensions - have a nice day changing your code...).
Note by:
To change all require_once('foo.php'); to require_once 'foo.php' execute this:

cd /var/www/

find . -name '*.php' -print | xargs egrep -l \
'require_once\s*(\(.*\));'\ | xargs sed -i.sedorig -e \
's/require_once\s*(\(.*\));/require_once \1;/'

(thanks to Robert Hajime Lanning for that)

Then to remove all the ".php.sedorig" backup files execute this:

find . -name "*.php.sedorig" -type f -exec rm -rf {} \;