Peter: Objekt und Scope Problem

Hallo liebe PHP-Entwickler,

ich habe ein recht seltsames Problem. An einer Stelle meines Quellcodes ist mein Objekt vorhanden. An einer anderen Stelle hingegen nicht. Das Objekt wird aber zwischenzeitlich nicht geändert. Hier mal eine grobe Struktur des Codes:

  
echo $object; <-- wird ausgegeben  
  
if($var1 == 'abc'){  
 echo $object; <-- wird nicht ausgegeben  
 echo "test" <-- wird ausgegeben  
}  
  
if($var2 == 'cba')  
 echo $object; <-- wird ausgegeben  
}  
  
echo $object; <-- wird ausgegeben  

Woran könnte das liegen?

Gruß
Peter

  1. Hi Peter!

    Woran könnte das liegen?

    Erstens ist dein Code fehlerhaft und
    zweitens fehlen relevante Codestücke.

    Wenn ich die Fehler deines Codes ausmerze und die Bedingungen auf true stelle, wird alles ausgegeben.

    Kannst du kein Minimalbeispiel auf die Beine stellen, wo der Fehler gerade noch auftritt?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Erstens ist dein Code fehlerhaft und
      zweitens fehlen relevante Codestücke.

      Kannst du kein Minimalbeispiel auf die Beine stellen, wo der Fehler gerade noch auftritt?

      MfG H☼psel

      Danke für deine Rückmeldung.

      Die Bedingungen werden immer true ausgewertet. Das war nur ein Auszug aus dem Quelltext.

      Es geht ja nur darum, dass das Objekt auf einmal weg ist und dann wieder da ist. Es müsste aber im Scope sein.

      Gruß
      Peter

      1. Hi!

        Es geht ja nur darum, dass das Objekt auf einmal weg ist und dann wieder da ist. Es müsste aber im Scope sein.

        Sollen wir raten? Ohne den relevanten Code zu sehen, wird Dir keiner helfen können.

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Hi!

          »» Es geht ja nur darum, dass das Objekt auf einmal weg ist und dann wieder da ist. Es müsste aber im Scope sein.

          Sollen wir raten? Ohne den relevanten Code zu sehen, wird Dir keiner helfen können.

          off:PP

          Aber es geht docha uch nicht um den Code. Da passiert doch auch nichts weiter. Der Code ist so aufgebaut, wie ich ihn gepostet habe. Die beiden if-Blöcke werden ausgeführt.

          Das ist ja das seltsame. Das Objekt verschwindet einfach und ist dann wieder da. Obwohl wirklich nichts anderes gemacht wird.

          Peter

          1. Hi Peter!

            Das ist ja das seltsame. Das Objekt verschwindet einfach und ist dann wieder da. Obwohl wirklich nichts anderes gemacht wird.

            Ich wiederhole es gerne ein letztes Mal:
            1. Dein geposteter Code enthält Fehler.
            2. Es ist egal, wie dein Code aufgebaut ist.
               Anscheinend hast du ein Problem, das
               wir ohne den Code nicht lösen können.
            3. Also poste dein Skript hier oder du wirst
               auf unsere Hilfe verzichten müssen.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hi Peter!

              »» Das ist ja das seltsame. Das Objekt verschwindet einfach und ist dann wieder da. Obwohl wirklich nichts anderes gemacht wird.
              Ich wiederhole es gerne ein letztes Mal:

              1. Dein geposteter Code enthält Fehler.
              2. Es ist egal, wie dein Code aufgebaut ist.
                   Anscheinend hast du ein Problem, das
                   wir ohne den Code nicht lösen können.
              3. Also poste dein Skript hier oder du wirst
                   auf unsere Hilfe verzichten müssen.

              MfG H☼psel

              Nochmal:

                
                
              $object = new myObject('a', 'b', 'c');  
                
              echo $object; //<-- wird ausgegeben  
                
              if(TRUE){  
               echo $object; //<-- wird nicht ausgegeben  
               echo "test"; //<-- wird ausgegeben  
              }  
                
              if(TRUE)  
               echo $object; //<-- wird ausgegeben  
              }  
                
              echo $object; //<-- wird ausgegeben  
              
              

              Mehr braucht man nicht, weil nichts passiert. Das Objekt ist einfach nicht im Scope, obwohl es da sein müsste.

              Peter

              1. Hi Peter!

                Der Code ist immer noch fehlerhaft. Wo ist die öffnende geschweifte Klammer zu der letzten schließenden geschweiften Klammer?

                Ich möchte dir ja wirklich helfen.

                Mehr braucht man nicht, weil nichts passiert.

                Wie sieht der Code aus?

                Das Objekt ist einfach nicht im Scope, obwohl es da sein müsste.

                Wie sieht der Code aus?

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
              2. echo $begrüßung;

                Mehr braucht man nicht, weil nichts passiert. Das Objekt ist einfach nicht im Scope, obwohl es da sein müsste.

                Es bleibt dabei. Das Problem ist so nicht nachvollziehbar (von den Syntaxfehlern mal abgesehen). Ich kann nur die üblichen allgemeinen Hinweise geben:

                Das error_reporting steht auf E_ALL (und display_errors auf on)? Verwende für Kontrollausgaben lieber var_dump() als echo, das erzeugt aussagekräftigere Ausgaben. Ein Scope wechselt nicht einfach so mit einer Kontrollstruktur (if, for, while etc.) Lediglich in Funktionen (und Methoden) gibt es einen eigenen Scope.

                echo "$verabschiedung $name";

              3. Hi!

                Nochmal:

                $object = new myObject('a', 'b', 'c');

                echo $object; //<-- wird ausgegeben

                if(TRUE){
                echo $object; //<-- wird nicht ausgegeben
                echo "test"; //<-- wird ausgegeben
                }

                if(TRUE)
                echo $object; //<-- wird ausgegeben
                }

                echo $object; //<-- wird ausgegeben

                
                >   
                >   
                > Mehr braucht man nicht, weil nichts passiert.  
                  
                Obiger Code reicht eben nicht, diesen würde der PHP-Interpreter nicht einmal ausführen.  
                  
                off:PP  
                  
                  
                
                -- 
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)