Сайт про то, какое php гавно неконсистентное.
Помимо того, что перечислено (хотя я не со всем сталкивался), меня в последнее время раздражает, что при нестрогом типировании (это так по-русски называется?), которое, наверное, благо, пустая или несуществующая переменная не считается пустым массивом.
Т.е. foreach ($a as $key => $value)
будет ругаться на то, что $a не массив, если $a — не массив (смешно, я знаю).
В моем понимании, $a="";
должно быть «равно» $a=array();
Аргументация?
И в первом и во втором случае можно сделать $a[]="new"
, и оно будет работать.
Ну и вообще можно по foreach и строку перебирать, если эта строка, почему бы и нет, раз остальное позволять работать со строкой как с «псевдомассивом».
Еще на стыке нестрогого типирования в php и mongodb иногда случаются смешные вещи, типа переменных «145», которые вдруг оказываются строкой, но это не проблема языка.