kölir: require vs. include

Hallo,

ich weiß, dass es das Thema schon häufig gab und überall was darüber zu inden ist, jedoch verstehe ich die Problematik nicht.

Überall steht require würde in nicht Erfüllten Bedingungen trotzdem ausgeführt und der Inhalt eingelesen.

Folgendes Beispiel scheint das zu wieder legen:
include.html mit HTML-Code

test.php
-----
<?php
if(1==2) {
    include('include.html');
    }
?>
-----

Bei include wird der Inhalt der include.html nicht eingebunden, wird inlude durch require ersetzt, wird der Inhalt auch NICHT eingebunden.

Wo liegt mein denkfehler?

Gruß

  1. Überall steht require würde in nicht Erfüllten Bedingungen trotzdem ausgeführt und der Inhalt eingelesen.

    Wo liegt mein denkfehler?

    Du solltest nicht dem Gelaber selbsternannter Experten vertrauen, sondern dir selbst ein Bild machen und in der require-Bedienungsanleitung nachschauen. Da steht's nämlich genau drin.

    1. Du solltest nicht dem Gelaber selbsternannter Experten vertrauen, sondern dir selbst ein Bild machen und in der require-Bedienungsanleitung nachschauen. Da steht's nämlich genau drin.

      Man koennte sich die hiesigen Experten als Betreuungsschicht um die Dokumentationen herum vorstellen. Idealerweise.

      Dazu kommt dann natuerlich noch das Konzeptionelle, hier erwerben sich die hiesigen Experten durchaus eine Existenzberechtigung.

  2. test.php

    <?php
    if(1==2) {
        include('include.html');
        }
    ?>

    Bei include wird der Inhalt der include.html nicht eingebunden, wird inlude durch require ersetzt, wird der Inhalt auch NICHT eingebunden.

    Nur eine Spekulation:
    Da die Bedingung nicht wahr ist, wird nie Code eingebunden.

    Ansonsten:
    http://de3.php.net/manual/de/function.require.php

  3. require und include übernehmen im script genau dieselbe aufgabe, der unterschied ist, dass php die ausführung eines scripts abbricht, wenn require einen fehler zurückgibt (z.b. datei nicht vorhanden), bei include nicht.

    gruss

    1. Hallo,

      und das ist der einzigste Unterschied?

      Also ich verstehe das einfach nicht...

      Und gibt es dann noch einen Performance Unterschied?

      Kann mir das vielleicht jemand Dummyhaft-bildlich erklären den Untershcied?

      Gruß

      1. echo $begrüßung;

        und das ist der einzigste Unterschied?

        Einzig ist schon wenig genug, durch das Steigern wird es auch nicht weniger.

        Kann mir das vielleicht jemand Dummyhaft-bildlich erklären den Untershcied?

        Dass beide Befehle existieren hat historische Gründe und ist im Handbuch nur noch Gegenstand einer Anmerkung. Früher war die Arbeitsweise so wie es schon im OP angenommen wurde. Ein require wurde direkt beim Parsen ausgeführt. include hingegen wurde erst zur Laufzeit ausgewertet, konnte also auch bedingt ausgeführt werden. Doch diese Unterschiede im Verhalten ist schon seit Version 4.0.2 nicht mehr vorhanden.

        echo "$verabschiedung $name";

  4. hi,

    <?php
    if(1==2) {
        include('include.html');
        }
    ?>

    Bei include wird der Inhalt der include.html nicht eingebunden, wird inlude durch require ersetzt, wird der Inhalt auch NICHT eingebunden.

    Darf man fragen, wie du das überprüft haben willst, ob eine Einbindung stattgefunden hat?

    Wo liegt mein denkfehler?

    Vermutlich darin, dass du glaubst, du würdest etwas innerhalb der Scriptausgabe zu sehen bekommen - was bei einer nicht erfüllten if-Bedingung aber selbstverständlich nicht der Fall ist; egal, ob das eine direkte Ausgabe per echo, eine Ausgabe durch Verlassen des PHP-Bereiches oder sonstwas ist.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      heißt das, dass mit require die Datei includiert wurde und eben nicht ausgegeben und bei include wurde die Datei erst garnicht includiert?

      Also ist include (zumindest in diesem Fall) schneller?

      Dann müsste man ja eigentlcih einfach immer include verwenden...

      Gruß

      1. hi,

        heißt das, dass mit require die Datei includiert wurde und eben nicht ausgegeben und bei include wurde die Datei erst garnicht includiert?

        Nur, wenn du mit einer ziemlich alten PHP-Version arbeiten würdest.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Und bei neueren Versionen besteht dann kein Unterschied mehr zwischen require und include außer dem mit dem error und der warning?

          Gruß

          1. Und bei neueren Versionen besteht dann kein Unterschied mehr zwischen require und include außer dem mit dem error und der warning?

            Woher um alles in der Welt kommt eigentlich dein grenzenloses Misstrauen gegenüber denjenigen, die require und include erst für PHP ge- und dann in der Anleitung zu PHP beschrieben haben?

            1. ...das kommt von meinem verlangen alles richtig zu machen und auch nachzuvollziehen...und in diesem Fall habe ich es nicht kapiert und deswegen nachgefragt...

              1. Hi!

                ...das kommt von meinem verlangen alles richtig zu machen und auch nachzuvollziehen...und in diesem Fall habe ich es nicht kapiert und deswegen nachgefragt...

                Ja, aber es wurde doch hier bereits erklärt...
                Außerdem gibt es das PHP-Handbuch: http://www.php.net/manual/de/.
                Dort findest du auch die Beschreibung zu include und require.
                Dort wird der Unterschied zwischen diesen beiden Funktionen in der Beschreibung beider Funktionen ganz zu Anfang des jeweiligen Artikels erklärt.

                Schöner Gruß,
                rob

  5. Hello,

    Wo liegt mein denkfehler?

    Darin, dass Du darauf vertraust, dass alles immer so bleibt, wie es ist.
    Stehen denn bei den Äußerungen Versionsnummern und Testdatum dabei?

    Von Zeit zu Zeit vergesse ich auch mal wieder, ab welcher Version das geändert wurde... :-)

    Require() ist genauso bedingbar, wie include()

    Allerdings hat es auch dieselben Probleme:
    siehe hierzu unbedingt: https://forum.selfhtml.org/?t=150292&m=976588

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau