Size: a a a

2020 December 06

АГ

Алексей Гевондян... in PHP
array_keys тоже числа вернет?
источник

AM

Artem Molotov in PHP
Алексей Гевондян
решает. пхп переделывает ключ из строки в число. а просто значение массива какое есть, такое и будет. '2' останется '2'. а в ключе заменится на 2
Ну и как же решает, если у тебя изначально массив может придти в виде $key => $value, а не [$key, $value]?
источник

АГ

Алексей Гевондян... in PHP
видимо оно на этапе формирования массива кастится
источник

AM

Artem Molotov in PHP
Алексей Гевондян
array_keys тоже числа вернет?
Да
источник

АГ

Алексей Гевондян... in PHP
Artem Molotov
Ну и как же решает, если у тебя изначально массив может придти в виде $key => $value, а не [$key, $value]?
ну надо переделать исходныймассив, да, в этом суть
источник

AM

Artem Molotov in PHP
Алексей Гевондян
ну надо переделать исходныймассив, да, в этом суть
В сторонней библиотеке, увы, не переделаешь. Да и в глобалах тоже.
источник

АГ

Алексей Гевондян... in PHP
ну тогда приведение к строке - самое норм
источник

AM

Artem Molotov in PHP
Алексей Гевондян
ну тогда приведение к строке - самое норм
Не норм, т.к. приведение к строке может сломать в местах, когда ключ был интовый и таким и должен остаться.
источник

AM

Artem Molotov in PHP
Тут принципально задача не решаема, если в кишки невозможно залезть. Вот каст в object это делает, кажется.
источник

АГ

Алексей Гевондян... in PHP
ну в его случае можно
источник

AM

Artem Molotov in PHP
в его — да
источник

AM

Artem Molotov in PHP
источник

AM

Artem Molotov in PHP
Ха
источник

AM

Artem Molotov in PHP
Если не приводить в объект, то '10'  станет интом, а если приводить, то 11 станет строкой
источник

AM

Artem Molotov in PHP
Забавно...
источник

А

Артём in PHP
Artem Molotov
Если не приводить в объект, то '10'  станет интом, а если приводить, то 11 станет строкой
А с json_encode такого нет
источник

DT

Dmitriy Tkachenko in PHP
Artem Molotov
Если не приводить в объект, то '10'  станет интом, а если приводить, то 11 станет строкой
Потому что у объекта перебираешь свойства вида имя - значение. А в массиве еслм передан ключ нумерик - то он станет интом
источник

DT

Dmitriy Tkachenko in PHP
Вообще ничего забавного, все очевидно и логично)
источник

AM

Artem Molotov in PHP
Артём
А с json_encode такого нет
Есть
источник

AM

Artem Molotov in PHP
Dmitriy Tkachenko
Вообще ничего забавного, все очевидно и логично)
Ага, всё очевидно и логично. Уже тыщу раз это слышал. Включая и о говне в JS.

То, что в документации это описано не делает что-то очевидным или логичным.
источник