V2.6 - RunScriptEx überschreibt ggf. Werte im $_IPS - Array ?

Ich weiss nicht, ob ich da gerade einen gravierenden Denkfehler mache, ob das ein Bug oder ein Beature ist …

Nach meinen Tests mit V2.6 überschreibenbei bei IPS_RunScriptEx() die als „Argumente“ übergebenen Variablen (Indices des Arrays), wenn sie den intern genutzten Indices von $_IPS enstprechen, diese (teilweise).

Beispiel:


$arg[ "XXX" ] = "xxx";
$arg['SENDER'] = $SENDER;
$arg['SELF'] = $SELF;

IPS_RunScriptEx( $id, $arg );

Im aufgerufenen Script ist nun $_IPS[‚SENDER‘] „irgendwas“ (das, was halt in $SENDER im rufenden Script stand). Es gibt ferner ein $_IPS[‚XXX‘]. $_IPS[‚SELF‘] stimmt immerhin.

Nun könnte man oberflächlich argumentieren, das sei kein großes Problem, „man kann ja die IPS-Indices meiden“.

Das impliziert aber, dass man generell keine Großschreibung mehr für seine Variablen benutzen kann (oder wenn, dann kryptischen Namen), denn wenn morgen IPS irgendeine weitere Variable als Index im $_IPS Array einführt, kann es jederzeit krachen.

Ist das gewollt? Falls ja, welchen Vorteil bringt das?

Man kann das Phänomen leicht nachvollziehen, wenn man in der ersten Zeile der __comatibility.php folgende Zeilen einträgt:


echo "
" . str_repeat("===", 50) . "
* * * * * * * RUNNING: " . __FILE__ . "
" . str_repeat("===", 50) . "
";

echo "\$GLOBALS=" ; print_r( $GLOBALS );

und irgend ein Script mit den o.g. Zeilen aufruft.