TS: Wiki zu PHP include

problematische Seite

Hello,

@Matthias Scharwies:

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

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
  1. problematische Seite

    Hallo TS,

    @Matthias Scharwies:

    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

    1. problematische Seite

      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

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. problematische Seite

        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

        1. problematische Seite

          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

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
          1. problematische Seite

            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

            1. problematische Seite

              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

              --
              Es gibt nichts Gutes, außer man tut es!
              Das Leben selbst ist der Sinn.
      2. problematische Seite

        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
        1. problematische Seite

          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.

        2. problematische Seite

          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."
  2. problematische Seite

    Könnte bitte jemand das

    &action=edit&section=4
    

    aus der URL des "Prolematische Seite"-Links entfernen? (In meinen Antworten hab ich das getan.)

    1. Hallo

      Könnte bitte jemand das

      &action=edit&section=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
      1. Vielen (X) Dank (THX)!