[PHP] Cannot redeclare Problem

  • Guten Abend,
    ich bin gerade dabei, zu versuchen, mit Classes zu arbeiten.


    Erklärung:
    Ich lade die Seite X und Include den Inhalt aus anderen Seiten.
    Oben habe ich meine ganzen Classes auf Seite X mit require eingebunden.


    Auf der Seite X werden die Objekte korrekt aus den Classes entnommen und angezeigt.


    Nun habe ich eine mysql.func.class.php erstellt und ebenfalls oben auf Seite X mit require eingebunden, dabei entsteht ein Problem.


    Folgendes komische Problem:
    In den jeweiligen Funktionen, in der mysql.func.class.php, binde ich eine connection.php ein, diese erstellt lediglich eine PDO Verbindung zur Datenbank her und es funktioniert.
    Soweit so gut, aber wenn ich in meiner mysql.func.class.php, die Objekte aus der anderen Class laden möchte (die oben auf Seite X über der mysql.func.class.php required werden), dann bekomme ich in den Fehler: Notice: Undefined variable.


    Dann kam mir der Gedanken, dann require ich die Classes in meiner function(), weil diese anscheinend nicht gefunden werden, obwohl sie über dieser Class (mysql.func.class.php) required werden.
    Dann habe ich es gemacht und bekomme den Fehler: Fatal error: Cannot redeclare class.
    Wenn ich diese Class auf der Seite X über der mysql.func.class.php, die nicht redeclare werden kann, ausklammere, dann funktioniert meine function() und die Objekte aus der Class werden richtig geladen.


    Jetzt einmal in Code:


    Meine Seite X

    Meine mysql.func.class.php


    Ich kann aber nicht auf Seite X meine mysql.class.php ausklammern, weil sonst die Objekte nicht auf der geladenen Seite angezeigt werden d.h. die Class muss drin bleiben, weil sie benötigt wird.


    Vielen Dank für Hilfe im Voraus.

    Einmal editiert, zuletzt von Pr0x ()

  • Ja...schau dir nochmal das Klassen Prinzip an:


    PHP
    $x = 5;
    class test()
    {
        //Hier drinnen existiert dein $x von außen nicht!
        //Wenn du es hier verwenden willst..musste eine Referenz übergeben =)
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Das versuche ich ja, indem ich meine mysql.class in der function() einbinde. Nur das Problem ist, wenn ich dies tue, dann habe ich es zwei mal geladen und ich bekomme den Fehler den Fehler: Fatal error: Cannot redeclare class.


    //edit: Wie macht man den sowas sicher, bin noch Neueinsteiger?

  • Zum Beispiel so:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S