require_once returns 1

  • Also entweder sehe ich da irgentwas nicht, oder es ist ein Bug.
    Wobei ich denke, ich übersehe da was.


    Ablauf:
    - class die files via require_once einbinden soll
    - die files returnen jeweils ein array
    - require_once soll mir also den inhalt der files liefern


    Problem:
    Im Testfall funktioniert das ohne Probleme.
    Im eigtl Script nicht - dort returnt require_once 1 (also true), obwohl der Aufbau der gleiche ist.
    Mit require oder include (ohne _once) funktioniert es bei beiden Varianten.


    Was ist da los?
    Kann das jemand bei sich feststellen?
    Hab mal den Test hochgeladen: html-seminar.de/woltlab/attachment/523/
    Wäre mal interessant bei wem require_once 1 returnt.


    Ich kann zwar jetzt require nutzen damit es funktioniert, allerdings möchte ich wissen wo das Problem liegt :D
    Danke schon mal!

  • Bei mir wird im Localhost/XAMPP und auf dem Webserver korrekt ausgegeben. Das ist seltsam.
    aber die _once()-Funktionen sollte man sowieso nicht verwenden habe ich mal gehört.


    Warum nutzt du eine Klasse um andere Dateien zu laden? Wie schaut das denn aus?

  • Das ist ein cut einer Klasse die dafür sorgt, dass das gesammte db-Modell erstellt wird. Die Dateien die da geladen werden sind die Tabellen-"Modelle".
    Es sind zu viele um es in ein File zu schreiben (user, usergroups, useractions, languages, ...,...).


    Mir bleibt da jetzt erstmal nix anderes übrig als require (ohne _once) zu nutzen.
    Den Fehler jag ich aber noch :D Das is bestimmt irgendwas dämliches, wie immer :D
    Danke fürs Testen

  • rewuire_once sorgt dafür, dass die eigentlich angeforerte Datei, falls sie vorher schon einmal eingebunden wurde, nicht noch ein zweites Mal eingebunden wird, um zB das Überschreiben von gleichnamigen Variablen zu verhindern.


    Das sagt die offizielle Doku: include_once (weil man rewuire_once dahin weitergeleitet wird)
    Dementsprechend hast du, wenn es einfach nur 1 (also true) liefert, diese Datei bereits vorher erfolgreich eingebunden, weshalb das _once verhindert, dass es ein zweites Mal eingebunden wird, sondern auf das erste Mal zurückgegriffen wird.

  • Nicht unbedingt, durch _once kann man zB das Ueberschreiben von Variablen verhindern, wenn man eine Variable mehrfach aus dem eingebundenen File ausliest.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!