Suche Fehler in IPS_SetEventScript

Hallo,
ich habe mit PHP ein Ereignis vom Typ „Ausgelöstes Ereignis“ erstellt. Das funktioniert und wird unter der Variable erzeugt.
Jetzt will ich dem Ereignis mit IPS_SetEventScript($eventId, $script) PHP-Code zuweisen; keine Scriptdatei.
Also die if-Anweisung wie im Anhang zu sehen.

Um den Fehler zu finden, habe ich die if-Anweisung schon sehr vereinfacht. Ich finde ihn aber nicht.
$script = „if(GetValueBoolean($_IPS[‚TARGET‘])){}“;

Fehlermeldung:
<b>Parse error</b>: syntax error, unexpected ‚‘ (T_ENCAPSED_AND_WHITESPACE), expecting ‚-‘ or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in <b>C:\IP-Symcon\scripts\16161.ips.php</b> on line <b>833</b><br />

Weiß jemand, wo der Fehler ist?

Alexander

2.png

Hast du mal in die Datei geschaut? Da steht was von Zeile 833… Das kann also nicht dein Ereignis sein.

paresy

Hallo paresy,
die Zeile ist die Zuweisung
$script = „if(GetValueBoolean($_IPS[‚TARGET‘])){}“;

Der Befehl
IPS_SetEventScript($eventId, $script);
ist deaktiviert.
Somit muss der Fehler in der Zuweisung von der Variable $script liegen. Wenn ich auch diese Zeile deaktiviere, dann erscheint keine Fehlermeldung mehr in Meldungen.

Alexander

Versuche es mal mit

$script = 'if(GetValueBoolean($_IPS[\'TARGET\'])){}';

Ah. Jetzt verstehe ich es auch. Alternativ sollte auch das gehen. Du willst verhindern, dass die Variable ausgewertet wird.


$script = "if(GetValueBoolean(\$_IPS['TARGET'])){}";

paresy

Hallo bumaas und paresy,
Danke für eure Hilfe. Beide Lösungen funktionieren. Die Lösung von paresy mit nur einem zusätzlichen Zeichen ist einfach.

Alexander