User
При возникновении ошибки во время вызовов json_encode()/json_decode() предлагается бросать ошибку класса E_WARNING
Но оно не имеет отношения к тому, что здесь обсуждается.
Шёл 2017-й год, а они всё бросали ворнинги.
теперь он только будет явно указываться.
mixed — явно указано, что здесь mixed.
Вообще любую строку или только строковые литералы?
Дали доступ к коду разгильдяю-саботажнику, который удаляет тесты, потому что они не работают и виноваты тесты?
Это из серии, что инкапсуляция призвана защищать от злоумышленников.
Типа, тайпхинтинг, конечно, крут, но он замедляет всё в 100500 раз.
Вон, JS со стрелочными функциями последнее время всё больше на brainfuck похоже становится.
Воспользуйтесь гугло-транслейтом, он бесплатен и переводит на порядок лучше.
Да, вообще все делали такое.
Лет пять-десять назад.
Я потом я сделал над собой усилие и перешёл на TypeScript.
Есть два интерфейса — перебор элементов и доступ к конкретному элементу по ключу. Они не взаимозаменяемые.
Нативный array «реализует» их оба.
И для итерирования, наконец, его слили с объектами с нужным интерфейсом.
А для доступа по ключу, опять забыли.