Was ist den nun wirklich der unterschied zwischen include() und require(). Im Buch und im Netz hab ich die Erklärung gefunden, dass require() den eingebunden code so einbindet als ob er wirklich an stelle von dem require wäre. Womit unterscheidet sich das aber von include()?
Da hast Du ein schlechtes Buch bzw. Netz erwischt.
"Anders als include() wird require() immer die angegebene Datei
einlesen, auch dann, wenn die Programmzeile, in der sie steht, nicht
ausgeführt wird. Wenn Sie eine Datei nur bedingt einlesen wollen,
benutzen Sie include(). Die bedingte Anweisung würde require() nicht
davon abhalten, die Datei zu laden."
http://www.php.net/manual/de/function.require.php
"include() unterscheidet sich von require() dadurch, dass die
include-Anweisung jedesmal neu ausgewertet wird, sobald sie auftritt
(und nur zur Ausführungszeit). Dagegen wird die require()-Anweisung
beim ersten Auftreten mit der angegebenen Datei ersetzt, egal ob sie
einzubinden ist oder nicht (innerhalb von bedingten Anweisungen, z.B.
bei if auch dann, wenn das ausgewertete Argument FALSE ergeben hat)."
http://www.php.net/manual/de/function.include.php
So steht's in der PHP-Anleitung. include() "reagiert" also auf if- oder while-Blöcke wie jede andere Anweisung in so einem Block, d. h. include wird nur bei der jeweiligen Bedinung ausgeführt.
require() hingegen wird _immer_ ausgeführt.
Gruß,
soenk.e