Bümpi und ich sind beim "Erlernen" der PHP-Programmierung fast verzweifelt - wir dachten immer es liegt an unserer Dummheit...
So jedenfalls sind wir auf ein Problem bei der Verarbeitung von leeren Zeichenketten durch PHP-Scripts gestossen - und zwar dann, wenn diese leeren Zeichenketten Studio-Objekten bzw. Studio-Objekt-Variablen zugewiesen werden.
Am Ende des PHP-Scripts werden diese Variablen ja bekanntlich zu den "richtigen" Studio-Objekten zurückübertragen. Wenn einem Objekt vom Typ Zeichen jedoch ein leerer String übergeben werden muß, gibt es Probleme. Die Rückübertragung aller Werte wird komplett abgebrochen, nicht einmal scriptoutput erhält den richtigen Wert. Man kann dann also nicht mal "Debug"-Ausgaben oder PHP-Fehlermeldungen über scriptoutput einsehen!
Es erscheint nur die lapidare Fehlermeldung "Error executing PHP-Script in <Objektname>" in der Statuszeile des Visualisierungsfensters - und zwar nur für kurze Zeit.
(...hat das gedauert, bis ich darauf gekommen bin...)
Ansonsten wird das Script aber sauber bis zur letzten Zeile abgearbeitet (Dateiausgaben etc. funktionieren - nur eben die Rückgabe der Werte an Studio nicht).
Hier ein Beispiel, bei dem das Verhalten gut reproduzierbar ist:
(a1, a2, a3 sind Variablen vom Typ Zeichen innerhalb des Objektes Anzeige vom Typ Zeichen)
Code: Alles auswählen
Anzeige := "abc#def#geh"
a1 := "123"
a2 := "456"
a3 := "789"
<?
$array = explode("#", $Anzeige);
$V_Anzeige_a1 = $array[0];
$V_Anzeige_a2 = $array[1];
$V_Anzeige_a3 = $array[2];
?>
Anzeige := a1 + "-" + a2 + "-" + a3
Mit der folgenden Änderung in der ersten Zeile allerdings, funktioniert das Makro nicht mehr:
Code: Alles auswählen
Anzeige := "abc##geh"
a1 := "123"
a2 := "456"
a3 := "789"
<?
$array = explode("#", $Anzeige);
$V_Anzeige_a1 = $array[0];
$V_Anzeige_a2 = $array[1];
$V_Anzeige_a3 = $array[2];
?>
Anzeige := a1 + "-" + a2 + "-" + a3
Bei der Gelegenheit auch gleich noch eine Bitte von Bümpi, die mir auch sehr sinnvoll erscheint:
könnte man nicht...
Vielen Dank im Voraus für die Anteilnahme,Bümpi hat geschrieben:...die Meldungen in der Statuszeile mit Zeitstempel versehen und stehen lassen, bis sie überschrieben werden. Wer sitzt schon 24 Stunden am
PC und schaut alle 5 Sekunden in diese Statuszeile?????
allen ein schönes Wochenende
Thomas