Sönke Tesch: include() vs require()

Beitrag lesen

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