И, чтобы, как говорится «два раза не вставать», расскажу про самую бесполезную конструкцию в ПХП. Я знаю, что не так много народу знают про (unset), про которую я ворчал вчера, а про эту вещицу, как мне кажется, знает ещё меньше программистов на ПХП.
Одна из неприятных вещей, которые остались в ПХП с давних времён — работа встроенных функций и конструкций только со строками в однобайтовых кодировках. С этим можно жить — есть библиотеки, которые позволяют замести эту проблему под ковёр, но сам язык помогать вам в этом не будет.
Какое-то время назад с этим пытались что-то сделать — в шестой, так и не вышедшей версии ПХП строки решили разделить на два типа — binary, это однобайтовые строки, которые остались в языке до сих пор и string — строки с Юникодом.
К сожалению, работу доделать не осилили, очень уж было сложно, особенно тяжело шло с расширениями. В итоге версия так и не вышла, но так как о ней широко раструбили, пришлось даже пропустить номер — после ПХП 5 вышла сразу седьмая версия.
Но некоторые отголоски этой не совершившейся революции всё-таки можно обнаружить и в современных версиях ПХП.
В версии 8.5 по сих пор есть преобразование типа (binary), которое является алиасом к (string), но выдаёт предупреждение об устаревшей конструкции. А кроме этого, у строки есть префикс b: b"string", придуманный для того, чтобы создавать в ПХП6 однобайтовые строки. В современных версиях ПХП он, разумеется, ничего со строкой не делает.
И эту всю красоту из языка почему-то не удалили, а от (unset) избавились. Никакой логики.
эталонное уродство, но всё же не так плохо как $obj->method(...)
Это просто вопрос привычки, не более того.
Нет, это не вопрос привычки. Я постоянно пишу на PHP, и он заставляет меня ставить миллионы лишних, совершенно ненужных символов, постоянно жать шифт и тянуться к доллару. У меня болят пальцы от этого языка. Его синтаксис уродлив как чёрт знает что. Вторая линия уродства — встроенные функции с их рандомным именованием и порядком аргументов (кажется, вы об этом писали когда-то), так что уверенно писать их по памяти невозможно даже после многих лет работы. Хотя в остальном это сейчас вполне нормальный язык.
Сочувствую. Скоро ИИ нас всех освободит.
Это — 100% вопрос привычки.
Да, писал, это сейчас самая большая проблема языка, от которой можно было бы избавиться хотя бы так, как сделали в ДжаваСкрипте — у каждого примитивного типа есть парный объект с прозрачным преобразованием. Не идеально, но лучше чем сейчас. А самые «рандомные» названия на самом деле не рандомные — они из Си пришли.