Ответ на сообщение Re: PHP что НАДО знать новичку пользователя stroryte11er
Да, то что строка является массивом - написано в мануале. Но, (ещё одна "особенность"!) попробуйте запустить по ней цикл, скажем foreach() и будете неприятно удивлены.
Именно, что только "иногда". Ни разу не пгобовали пробежаться по строке "посимвольно"? Это не такая тривиальная задача, как может показаться с первого взгляду.
Почему поведение интерпретатора - кривое, я описал в предыдущем примере (как он додумывается до такого). Там только один "изъян":
выражение $var['const'] должно интерпретироваться как элемент ассоциативного массива. И никак иначе.
Псевдофункция empty() - в том числе ОБЯЗАНА проверять наличие элемента именно ассоциативного массива в данном случае (часть описания isset).
Потому что по тексту сначала идет разименование имени параметра, и дополнительно указание на выборку для проверки элемента параметра - ассоциативного массива. Вот эта, вторая операция интерпретатора и должна была выдать результат проверки "отсуствует". Потому как поиск отсутствующего элемента должен был уже на этом этапе вернуть null. Который и есть true для empty(). Строка - массив, но нумерованный, а не ассоциативный. и Разыскать в ней ассоциативный член, попутно создав его - просто "верх пилотажа".
Проблема в том, что empty() и не заморачивается на проверку структуры. Действительно - нафига?
Любой нормальный ЯП - обладает таким явлением как Синтасическая Диаграмма. Её прелесть в том, что любая ситуация для LL-грамматик (и не только, но это - бОльшая часть ЯП) - однозначны.
Дело в том, что ПХП - ваще не ЯП. Это набор библиотек и способов их использования (внешне похожих на ЯП) для сервера Apache. И все эти "иногда" - как раз легко и просто объясняются этим фактом.
Может он и "хочет стать языком"... но только идет уж очень кружным путем.
"Только так, только личная инициатива и напряженная работа над собой. .. Нужно своей собственной рукой все делать" (с) В.В. Путин(а не на "вертикаль власти" надеяться)