kostenloser Webspace werbefrei: lima-city


Unterschied von include() und require() ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    spiele2u

    spiele2u hat kostenlosen Webspace.

    Hallo

    was ist eigentlich der Unterschied zwischen include() und require() ?
    beides läd doch den Inhalt einer anderen Datei, gibt es überhaupt einen Unterschied ?

    und was von beidem sollte man verwenden, umd ein Script
    je nach Anfrage aus "Bausteinen" zusammen zu stellen

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Im Grunde genommen - und das ist das verwirrende - bezwecken beide Funktionen das gleiche. Anstatt der o.a. Zeile wird jeweils der Inhalt der in Klammern stehenden Datei eingefügt. Das hat den Vorteil, dass man immer wieder vorkommende Daten (wie z.B. das Rahmenlayout dieser Webseite) in alle anderen Dateien einbinden kann, und wenn man mal was am Layout verändern will, man nur eine einzige Datei ändern muss, und nicht alle Dateien einzelnd. Nach neuesten Tests (Egon Schmid + Praktikantin) kann man in einer Datei sogar bis zu 4096 (!) require's bzw. include's machen.

    Aber trotzdem gibt es den kleinen, aber feinen Unterschied zwischen den beiden Funktionen.
    Die Benutzung von 'require' im Gegensatz zu 'include':
    Die require Funktion lädt den Inhalt der in Klammern stehenden Datei in die aufrufende Datei ein. Der Aufruf wird also durch die aufgerufene Datei ersetzt. Problematisch wird das nun, wenn man die Funktion innerhalb einer Schleife benutzen will. Das darf man nämlich nicht. Wenn man z.B. drei Dateien nacheinander ausführen will (1.inc, 2.inc, 3.inc), so würde in einer Schleife mit 'require' die Datei 1.inc dreimal ausgeführt werden.


    Quelle: http://www.dynamic-webpages.de/50.tutorials.php?dwp_tutorialID=1
  4. require ist das gleiche wie include, nur gibt require wenn die Datei nicht geladen werden kann einen Fehler statt eine Warnung zurück
  5. Problematisch wird das nun, wenn man die Funktion innerhalb einer Schleife benutzen will. Das darf man nämlich nicht. Wenn man z.B. drei Dateien nacheinander ausführen will (1.inc, 2.inc, 3.inc), so würde in einer Schleife mit 'require' die Datei 1.inc dreimal ausgeführt werden.
    Ich habe es gerade ausprobiert und die drei Dateien wurden nacheinander aufgerufen und arbeiteten. Ansonsten würde das doch auch keinen Sinn machen.
  6. Autor dieses Themas

    spiele2u

    spiele2u hat kostenlosen Webspace.

    ahh ok Danke
    also merke (ich mir): nutze nie require() innerhalb einer Schleife
    DANKE für das Erklärungs-Zitat

    EDIT: ... zum test von drafed-map ... vielleicht war das vor PHP5 mal so
    und ist jetzt kein Problem mehr, nur so ne Vermutung

    aber der Teil aus dem Zitat: "Der Aufruf wird also durch die aufgerufene Datei ersetzt."
    macht echt keinen Sinn, das würde ja den folgenden Code abschneiden ?!

    Beitrag zuletzt geändert: 5.10.2011 16:14:59 von spiele2u
  7. spiele2u schrieb:
    aber der Teil aus dem Zitat: "Der Aufruf wird also durch die aufgerufene Datei ersetzt."
    macht echt keinen Sinn, das würde ja den folgenden Code abschneiden ?!
    Tut es auch nicht. Und wenn ich in der Schleife
    require($i.'.inc');
    stehen habe, bekommt require() ja genauso immer einen neuen Parameter, wie include() ihn bekommen würde.
  8. Ich habs nur kopiert :p Aber gerade auch mal mit dem selben Ergebnis getestet. Die von mir zitierte Aussage ist also falsch.

    Aber ich finde, dass der eigentliche Unterschied von PHP.net wohl am treffendsten beschrieben wird:

    require() entspricht im Wesentlichen include(), wirft aber im Fehlerfall einen E_COMPILE_ERROR Fehler. Es beendet also die Programmausführung während include() nur eine Warnung (E_WARNING) generiert und so die weitere Programmausführung gestattet.


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

    Beitrag zuletzt geändert: 6.10.2011 23:10:09 von fabo
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!