Tach!
Weil beides [include/include_once] im Fehlerfall nur eine Warnung produziert und ansonsten weitermacht.
was genau meinst Du denn mit "Fehlerfall"? Dass die Ressource, die includet werden soll, nicht vorhanden ist? Oder dass aus einem technischen Grund der Include nicht funktioniert hat? Falls letzteres überhaupt möglich ist, dann würde doch die komplette Skriptverarbeitung auch nicht funktionieren. Oder meintest Du mit "Fehlerfall" etwas ganz anderes?
Fehlerfall ist, wenn das Inkludieren als solches aus welchem Grund auch immer erfolglos war. Das PHP-Handbuch führt an, dass ein Grund eine nicht vorhandenen Datei ist. Vermutlich zählen auch noch fehlende Zugriffsberechtigungen dazu. Fehler beim Parsen zählen extra.
Der Meinung, include(_once) generell zu vermeiden, wie Sven es einleitend vorschlug, schließe ich mich nicht an. Nicht in jedem Fall will man dem Anwender nur eine PHP-Fehlermeldung oder auch nur einen unbegründeten (wenn display_errors ausgeschaltet ist) Abbruch anbieten. Bei include(_once) hat man zumindest die Möglichkeit mit eigenem Code das Fehlen abzufangen und noch einen geordneten Abschluss hinzulegen. Nun kann das Argument kommen, dass man dann vorher mal ein is_readable() anwenden kann. Kann man - wenn der zweifache Dateisystemzugriff bei jedem Mal billiger ist, als ein @ und das Auswerten hinterher. Das sollte man aber für seine Soituation individuell klären.
dedlfix.