Newbie 1x1 frage zu PHP

Wenn ich eine bool Variable mit einem true oder false beschreiben möchte, kann ich das ja mit:

RequestAction(12345, false);

Wenn ich aber eine integer Variable mit einer 22 beschreiben möchte funktioniert das so

RequestAction(12345, 22); 

uns so:

RequestAction(12345, "22");

wie wäre es denn richtig?

Und warum funktioniert das für folgende, mich eigentlich logische nicht?!?

SetValueInteger(12345, 22);   

Vielen Dank!

RequestAction funktioniert, wenn ein Aktionsskript hinterlegt ist bzw. es sich um eine Statusvariable mit Standardaktion handelt.

SetValueInteger funktioniert ebenfalls, wenn es sich um eine normale Variable handelt. Bei einer schreibgeschützten Statusvariable geht das nicht.

Die Zahl in Anführungszeichen funktioniert, weil PHP automatisch Typ-Konvertierungen (in dem Fall String zu Integer) durchführt, sofern das möglich ist.

1 „Gefällt mir“

Tja… Leider falsch :slight_smile:
Beschreiben, oder auch setzen, ist SetValue.
Schalten ist RequestAction.
Der Unterschied ist in der Dokumentation unter Statusvariablen erklärt.
Kurzum. SetValue beschreibt nur die ‚Anzeige‘ also die Variable.
RequestAction führt nur die Aktion der Variable aus, sofern vorhanden.
Der Inhalt der Variable wird dann durch die (erfolgreiche) Aktion anschließend auf den neuen Wert gesetzt, oder, je nach Hardware hinter der Statusvariable, erst wenn die Hardware dem neuen Wert an Symcon liefert.
Michael

2 „Gefällt mir“

Mega! Das Wissen um Details ist immer gut für das Verständnis. Danke für mich war Deine Ausführung damit sehr Hilfreich! Ich hatte in Nachgang noch mal den Teil der Doku zu Variablen gelesen.