Objekt und Scope Problem
Peter
- php
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
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
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
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
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
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
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:
- Dein geposteter Code enthält Fehler.
- Es ist egal, wie dein Code aufgebaut ist.
Anscheinend hast du ein Problem, das
wir ohne den Code nicht lösen können.- 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
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
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";
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)