wie kann ich eine nicht belegt bzw. ausgeüllte Eigenschaft abfangen?
$this->ReadPropertyInteger(„Eigenschaft“)
führt zu einem Fehler, wenn der User den Wert nicht ausgefüllt hat.
Wenn der Wert wird bei der Konfiguration mit 0 vorbelegt, füllt der User den Wert dann aus und nimmt ihn später wieder raus, dann kommt ein Fehler, dass die Variable nicht existiert.
Um diesen abzufangen versuche ich
empty( $this->ReadPropertyInteger(„Eigenschaft“)
aber das klappt nicht. Wollte dann durch Abfangen einen anderen Wert vorgeben.
Ich bin mir nicht sicher was du mit Fehler beim lesen der Eigenschaft meinst! Wenn Du die Eigenschaft ordentlich registriert hast kommt beim lesen nie ein Fehler.
Jetzt kommt es drauf an was die Eigenschaft in der Form ist. Bei SelectVariable z.B. ist ein nicht belegter Wert gleich 1. Am besten prüft man dann mit <= 10000.
Also schreib was Du machen willst, dann wird es einfacher zu helfen.
Im Createbreich…
$this->RegisterPropertyInteger(„Eigenschaft“, 0);
…
Das funktioniert auch alles wunderbar, solange der User eine Variable ausgewählt hat. Nimmt er die Variable anschließend wieder raus und im Feld steht dann "Kein(e) ", dann meldet das System „Warning: Variable #1 existiert nicht in C:…“
Ich kann die leere, nicht belegte Eigenschaft nicht abfangen mit Empty und auch nicht mit is_null. Als wenn das Property gar nicht existieren würde.
Ergänzung:
Habe gerade nochmals rumgestest. Das mit <= 10000 funktioniert. Danke für den Tipp. Die Variable ist dann nicht belegt mit einer Zahl. Dachte, dass man Empty oder is_null nehmen müsste. Warum das so funktioniert??
In den meisten Fällen empfehle ich statt < 10000 einfach per IP_VariableExists zu prüfen, ob es die Variable gibt. Das fängt sowohl Werte < 10000 ab als auch eine möglicherweise wieder gelöschte Variable.