Sven Rautenberg: implizites Arraydefinieren "considered harmful"

Beitrag lesen

Moin!

$arg = "scheisse";

$_data = unserialize($arg);

Diese Zeile liefert bei mir eine Notice über einen unzulässigen Parameterwert in $arg. War ja auch klar...

$_data = "noch ein String";
$_data["wert"] = "neuer Wert";

echo "$_data:\n";
var_dump($_data);

Und an dieser Stelle hat deine unglückliche Auswahl an Teststrings einen sehr ungünstigen Effekt überdeckt.

Teste mal so:

$_data = "1 Million Euro";
$_data['wert'] = 9;

var_dump($_data);

Da werden aus einer Million plötzlich 9 Millionen!

Der erste Buchstabe des Strings wird jeweils überschrieben. Zumindest bei meiner Version 4.3.0 und 4.3.3.

Merke: Das implizite Definieren von Arrays ist nicht die Methode, die man wirklich anwenden sollte.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)