Problem beim übergeben von Objekten mittels Type Hinting

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem beim übergeben von Objekten mittels Type Hinting

    Hallo und guten Abend,

    ich habe ein Prolem was ich nun mittlerweile nicht mehr nachvollziehen kann.

    Ich habe eine Klasse die mir das laden von Pages erledigt, da übergebe ich der Methode [COLOR="Blue"]loadPages()[/COLOR] nun zwei Klassen via Type Hinting.

    PHP-Code:
    public function loadPages(DbAdaptClass $_dbFileHandlerClass $loadFileInstance){
            
            if(
    $this->checkPageParams() !== FALSE){
                
                switch(
    $this->_page){
                    
                    case 
    $this->_page:
                        include(
    $this->_page.'.php');
                    break;
                    
                    default:
                        include(
    'customer_profil.php');
                }
            }
        } 
    Die Klassen die da übergebe instanziere ich wie folgt vor dem Aufruf dieser Methode.

    PHP-Code:
    //instance auf die DB klasse
        
    $dbInstance = new DbAdaptClass();
        
    $dbInstance->dbConnect(sql_serversql_usersql_passwdsql_db);

    //intance auf den file handler
        
    $loadFileInstance = new FileHandlerClass(); 
    Und hier übergebe ich meine Objekte als Parameter der Methode [COLOR="Blue"]loadPages();[/COLOR]

    PHP-Code:
    //aufrufe der pages wenn sie geladen werden  können
            
    $pageControlInstance->loadPages($dbInstance$loadFileInstance); 
    So weit so gut.

    Über meinen PageLoader habe ich nun eine Testdatei aufrufen lassen und nun da geprüft ob Objekte existieren.

    PHP-Code:
    //gibt mir eine notice das $dbInstance nicht gesetzt ist
    if(is_object($dbInstance)){
        
        echo 
    'ja';
    }

    //das wiederum klappt und mir wird ja ausgegeben
    if(is_object($loadFileInstance)){
        
        echo 
    'ja';

    So und das verstehe ich eben nicht ganz, die Testpage wird ja über die Methode [COLOR="Blue"]loadPages();[/COLOR] aufgerufen und somit ist ja alles was ich da nun aufrufe auch im Scope der Methode vorhanden.

    Die Prüfung die ich in der Testdatei machte, habe ich auch in der Datei gemacht wo ich die Instanz bilde, da wird mir bei beiden ein ja ausgegeben.

    Könnt ihr mir verraten warum in der Testdatei das eine Objekt was die FileHandlerClass beinhaltet und das Objekt auf meine Datenbank Klasse aber nicht?

    Ich bin da mit meinem Latein am Ende.

    Sollte der Code den ich gepostet habe nicht reichen und ihr benötigt weiteren um das Problem eventuell besser analysieren zu können dann poste ich natürlich nach.

    Ich danke euch für eure investierte Zeit und auch Hilfe.

    Mfg Litter
    Zuletzt geändert von litterauspirna; 28.08.2010, 18:56.
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

  • #2
    So und das verstehe ich eben nicht ganz, die Testpage wird ja über die Methode loadPages(); aufgerufen und somit ist ja alles was ich da nun aufrufe auch im Scope der Methode vorhanden.
    Ist es ja auch!

    gibt mir eine notice das $dbInstance nicht gesetzt ist
    Glaube der Meldung!


    PHP-Code:
    //if(is_object($dbInstance)){ << -- falsch
    if(is_object($_db)){ // <<--- besser

        
        
    echo 'ja';

    Wir werden alle sterben

    Kommentar


    • #3
      Zitat von combie Beitrag anzeigen
      Ist es ja auch!


      Glaube der Meldung!


      PHP-Code:
      //if(is_object($dbInstance)){ << -- falsch
      if(is_object($_db)){ // <<--- besser

          
          
      echo 'ja';

      Ahh verdammt, du hast natürlich vollkommen recht. Da habe ich nur schräg gelesen. Sorry für einen solch banalen Fehler. Da mache ich Testausgaben, prüfe hier und gucke da und dann übersehe ich das.

      Also vielen Dank.

      Mfg Litter

      [EDIT]
      ich habe der Meldung ja geglaubt, warum auch nicht, die wäre ja nicht da wenn nichts verkehrt laufen würde, aber da ich das von dir aufgezeigte vollkommen übersehen habe konnte ich die Entstehung der Meldung niur nicht wirklich nachvollziehen. Manchmal sieht den Wald vor lauter Bäumen nicht.
      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
      http://www.lit-web.de

      Kommentar

      Lädt...
      X