Показать сообщение отдельно
  #37 (permalink)  
Старый 21.04.2020, 18:07
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Белый шум
но означает ли это что массивы в PHP не соответствуют определению ассоциативных массивов?
Да, не соответствуют. В РНР — это только частично ассоциативный массив, т. е. его ключи ограничены типом строка, что означает, что он ничем не отличается от экземпляра класса Object в JS.

Зачем вообще в РНР упоминается в связи с [] или array() название ассоциативный массив — неясно, почему нельзя называть вещи своими именами — динамический объект, экспандо (оно ведь и есть объект-распашонка) или расширяемый null. Функции json_encode и json_decode могут показать это!

[] или array() не могут произвести ничего такого, чего нельзя было бы представить при помощи JSON.

Сообщение от Белый шум
Разработчики PHP считают, что не означает...
Разработчики PHP считают и многие другие нетрадиционные и странные вещи нормальными...

Код:
php > print_r((string)247 > '0000247' ? 'Это норма — говорит PHP' : 'Нет');
Нет
php > print_r((string)247 < '0000247' ? 'Это норма — говорит PHP' : 'Нет');
Нет
php > print_r((string)247 == '0000247' ? 'Это норма — говорит PHP' : 'Нет');
Это норма — говорит PHP
php > print_r((string)247 === '0000247' ? 'Это норма — говорит PHP' : 'Нет');
Нет
Т. е. для PHP условие — '247' > '0000247' неверно, а равенство '247' == '0000247' верно. Это значит, что PHP... «Разработчики PHP считают, что не означает...»

Код:
php > print_r(-4.8 > NULL ? 'Это норма — говорит PHP' : 'Нет');
Это норма — говорит PHP
Учитывая, что в PHP любая переменная может возникнуть в любом месте (с тем самым значением NULL) и даже не произойдёт завершение с ошибкой, означает ли, что PHP... «Разработчики PHP считают, что не означает...» Это норма — говорит PHP, что NULL ведёт себя как −∞.

Много ещё есть вещей типа «Это норма — говорит PHP», однако однажды случилось такое... Я думаю, что в PHP стоило ожидать, что нечто такое произойдёт — T_PAAMAYIM_NEKUDOTAYIM. Если в традиционных языках написали бы в ошибке T_DOUBLE_COLON, то в PHP проявляется неконсистентность даже среди языков, на которых именуются операторы языка. Это означает, что в PHP... Ах, простите, «Разработчики PHP считают, что не означает...» Это норма — говорит PHP.
Ответить с цитированием