Wiki zu PHP include
TS
- php
- selfhtml-wiki
Hello,
ich bin der Meinung, dass include und include_once hier genau verkehrt herum dargestellt werden.
Wenn dem nichts entgegen steht, würde ich das nachher vom Desktop mal umformulieren. Mit dem Tablet ist es zu mühevoll.
Glück Auf
Tom vom Berg
Hallo TS,
ich bin der Meinung, dass include und include_once hier genau verkehrt herum dargestellt werden.
- include benutzen Sie, wenn Sie eine Datei (womöglich) mehrfach einbinden wollen und PHP die Verarbeitung des Skriptes nicht abbrechen soll, falls diese Datei nicht vorhanden ist. Ist die Datei nicht vorhanden wird allerdings eine Notiz „geworfen“, welche man mit sinnvollen Einstellungen des Error-Reportings unterbinden kann.
- include_once benutzen Sie, wenn Sie eine Datei genau einmal einbinden wollen und wenn PHP die Verarbeitung des Skriptes nicht abbrechen soll, falls diese Datei nicht vorhanden ist. Einen Versuch, die Datei mehrfach einzubinden, wird PHP schweigend (also ohne Fehlermeldung oder Notiz) übergehen. Ist die Datei nicht vorhanden wird allerdings eine Notiz „geworfen“, welche man mit sinnvollen Einstellungen des Error-Reportings unterbinden kann.
include
ermöglicht mehrfache Einbindung, include_once
wird nur einmal ausgeführt. Nein, alles richtig.
LG,
CK
Hello,
ich bin der Meinung, dass include und include_once hier genau verkehrt herum dargestellt werden.
- include benutzen Sie, wenn Sie eine Datei (womöglich) mehrfach einbinden wollen und PHP die Verarbeitung des Skriptes nicht abbrechen soll, falls diese Datei nicht vorhanden ist. Ist die Datei nicht vorhanden wird allerdings eine Notiz „geworfen“, welche man mit sinnvollen Einstellungen des Error-Reportings unterbinden kann.
- include_once benutzen Sie, wenn Sie eine Datei genau einmal einbinden wollen und wenn PHP die Verarbeitung des Skriptes nicht abbrechen soll, falls diese Datei nicht vorhanden ist. Einen Versuch, die Datei mehrfach einzubinden, wird PHP schweigend (also ohne Fehlermeldung oder Notiz) übergehen. Ist die Datei nicht vorhanden wird allerdings eine Notiz „geworfen“, welche man mit sinnvollen Einstellungen des Error-Reportings unterbinden kann.
include
ermöglicht mehrfache Einbindung,include_once
wird nur einmal ausgeführt. Nein, alles richtig.
Das ist mir zu simpel gedacht. Es werden wesentliche Aspekte nicht erwähnt. Deine Lesart ist ein Spezialfall, den es aber zu beschreiben gilt. Darüber hinaus sollten die anderen möglichen Fälle auch betrachtet werden.
Bsp.: Sowie eine zu includierende Datei eine Funktionsdefinition enthält, kracht es voraussichtlich bei mehrfachem Include.
Glück Auf
Tom vom Berg
Hallo TS,
Das ist mir zu simpel gedacht.
Das mag ja sein, ist aber nicht das, was du geschrieben hast. Dein Einwand war „es ist genau umgekehrt zu dem, was das steht,“ und darauf habe ich den Abschnitt überprüft. Und das ist halt falsch. Es ist genau so herum richtig, wie es da steht.
Wenn dir das nicht ausführlich genug ist, dann ergänze es gerne, aber umdrehen würde den Artikel schlicht falsch machen.
LG,
CK
Hello,
sorry, meine Goldwage ist in der Werkstatt ;-P
Aber nun haben wir unsere Gedanken hoffentlich hinreichend synchronisiert.
Ich werde das (möglichst sparsam) ergänzen, damit der Sinn und die Einsatzszenarien für PHP-Neulinge klar werden.
Glück Auf
Tom vom Berg
Hi,
sorry, meine Goldwage ist in der Werkstatt ;-P
Ich hoffe, die Werkstatt hat noch ein a auf Lager, sonst dauert das mit der Reparatur 😉
cu,
Andreas a/k/a MudGuard
Hello,
sorry, meine Goldwage ist in der Werkstatt ;-P
Ich hoffe, die Werkstatt hat noch ein a auf Lager, sonst dauert das mit der Reparatur 😉
Ups, das muss beim Includen verloren gegangen sein.
Glück Auf
Tom vom Berg
Hallo TS,
ich finde vor allem das Beispiel zu include schlecht. Das ist doch kein sinnvolles Design, was da als Demo verwendet wird.
Anders wär's, wenn man dort einen Directory-Lesemechanismus verwenden würde, der bestimmte Dateimuster sucht und inkludiert.
Für mich wäre der primäre Einsatzzweck von include eigentlich das Einbinden von HTML Fragmenten, die in mehreren Dateien und darin ggf. an mehreren Stellen benötigt werden. Als Datenlieferant? Auf php.net wird das zwar gemacht, aber sowas gehört doch wohl eigentlich in eine DB. Für Config-Daten wären die once-Versionen sinnvoller, eine Config liest man nur einmal.
Der Hinweis auf mehrfach definierte Funktionen ist zwar interessant, aber es ist nun mal eine Eigenschaft von PHP, dass Funktionen grundsätzlich global sind und darum nicht mehrfach definiert werden dürfen. Das ist kein Problem von include. Man kann natürlich darauf hinweisen, dass eine mit include eingebundene Datei tunlichst keine Funktionsdefinitionen enthalten sollte.
Rolf
Man kann natürlich darauf hinweisen, dass eine mit include eingebundene Datei tunlichst keine Funktionsdefinitionen enthalten sollte.
Genauer:
"Enthält eine Datei nicht bedingte Funktions-, Klassen- oder Konstanten-Definitionen, dann sollte diese also mit require_once
oder include_once
eingebunden werden, weil durch das mehrfache Einbinden eine nicht erlaubte Neudefinition stattfinden würde, was zu einem Fehler führt."
Und, wenn man doppelt moppeln will:
"Ob Sie require_once
oder include_once
verwenden hängt davon ab, ob Sie auf den Fehler selbst reagieren wollen oder ob PHP die Abarbeitung des Skripts abbrechen soll."
Aber eigentlich ist das unter "Beispiele" alles schon erklärt. Könnte man in "Anwendungsfälle und Beispiele" umbenennen.
Servus!
Hallo TS,
ich finde vor allem das Beispiel zu include schlecht. Das ist doch kein sinnvolles Design, was da als Demo verwendet wird.
Ich hatte @TS zwar ne PN geschrieben, aber noch mal hier für alle:
Ich habe im Test-Wiki einen neuen Artikel zu Templates in PHP angefangen. Da ich nach den Includes „nicht weiterwusste“, habe ich zusammen mit Felix ein Template für eine mehrsprachige Seite entwickelt, das dann (auf unseren Festplatten) zu einem kleinen Framework geworden ist.
Da das mit dem ursprünglichen Artikel nicht mehr viel gemein hat, haben wir einfach mal abgebrochen.
Im Februar machen wir da weiter! Und wenn es vorzeigbar ist, wird der bestehende Artikel ersetzt/ergänzt.
Herzliche Grüße
Matthias Scharwies
Könnte bitte jemand das
&action=edit§ion=4
aus der URL des "Prolematische Seite"-Links entfernen? (In meinen Antworten hab ich das getan.)
Hallo
Könnte bitte jemand das
&action=edit§ion=4
aus der URL des "Prolematische Seite"-Links entfernen? (In meinen Antworten hab ich das getan.)
Soeben für das Eröffnungsposting [edit]und mittlerweile auch die anderen Postings[/edit] geschehen.
Tschö, Auge
Vielen (X) Dank (THX)!