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
Das Leben selbst ist der Sinn.
-
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,
-- https://wwwtech.de/about
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
-- Es gibt nichts Gutes, außer man tut es!
Tom vom Berg
Das Leben selbst ist der Sinn.
-
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,
-- https://wwwtech.de/about
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
-- Es gibt nichts Gutes, außer man tut es!
Tom vom Berg
Das Leben selbst ist der Sinn.
-
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
-- Es gibt nichts Gutes, außer man tut es!
Tom vom Berg
Das Leben selbst ist der Sinn.
-
-
-
-
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
-- sumpsi - posui - clusi-
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
oderinclude_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
oderinclude_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
-- "I don’t make typos. I make new words."
-
-
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
-- Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
Kleine freie Männer von Terry Pratchett
-