1
Hallo,
eigentlich dachte ich, in punkto PHP hätte ich schon so ziemlich alles gesehen, aber das hier kam mir erst jetzt unter - und ich verstehe das Verhalten nicht.
Das Ergibt nicht, was ich erwarten würde, 'undefined index...' etc, sondern 'T'! Eine isset($test[1]['wischiwaschi']) - Prüfung ergibt true. Ist das ein Bug oder so gewollt? Wenn das so gewollt ist, erkenne ich den Sinn im Verhalten nicht. Meine PHP ist Version 5.2.1.
Ich meine, wenn ich einen Buchstaben aus $test[1] wollte, z.B. das 's', dann würde ich das doch so schreiben wollen: echo $test[1]{2};
Aber ich bekomme 's' auch so: echo $test[1][2]; $test[1]['wischiwaschi'] ist gleichbedeutend mit $test[1][0] oder $test[1]{0}... Ist das schon immer so gewesen?
Edit: ich habs nun abgeändert und prüfe mittels is_array, array_key_exists und strlen. Funktioniert, ist jedoch viel umständlicher als eine isset-Prüfung...
eigentlich dachte ich, in punkto PHP hätte ich schon so ziemlich alles gesehen, aber das hier kam mir erst jetzt unter - und ich verstehe das Verhalten nicht.
<?php
error_reporting(E_ALL);
$test = array(
1 => 'Test1',
2 => 'Test2'
);
echo $test[1]['wischiwaschi'];
?>
Das Ergibt nicht, was ich erwarten würde, 'undefined index...' etc, sondern 'T'! Eine isset($test[1]['wischiwaschi']) - Prüfung ergibt true. Ist das ein Bug oder so gewollt? Wenn das so gewollt ist, erkenne ich den Sinn im Verhalten nicht. Meine PHP ist Version 5.2.1.
Ich meine, wenn ich einen Buchstaben aus $test[1] wollte, z.B. das 's', dann würde ich das doch so schreiben wollen: echo $test[1]{2};
Aber ich bekomme 's' auch so: echo $test[1][2]; $test[1]['wischiwaschi'] ist gleichbedeutend mit $test[1][0] oder $test[1]{0}... Ist das schon immer so gewesen?
Edit: ich habs nun abgeändert und prüfe mittels is_array, array_key_exists und strlen. Funktioniert, ist jedoch viel umständlicher als eine isset-Prüfung...