В PHP сообществе развернулась широкая дискуссия по поводу предложения о возможности убрать скобки в конструкции:
(new MyClass())->method();
// ↓
new MyClass()->method();
В предыдущей заметке по этой теме я был против такого изменения не смотря на то, что мне тоже очень не нравится писать эти скобки. И единственный довод против — неоднозначность при чтении кода без скобок: можно предположить, что
new будет относится к результату выражения MyClass()->method(). Ну а так как читать всё-таки важнее, чем писать, то предложение убрать скобки мне не понравилось.Аргумент с неоднозначностью основной у противников предложения, и Валентин написал комментарий, где расписал почему это является заблуждением.
И в моём случае это сработало 🙂
Действительно, «по этой логике само выражение
new A() в текущем PHP тоже неоднозначно». Прочитав это, я перестал видеть неоднозначность. Дополнительным аргументом в пользу изменения стало наличие аналогичного синтаксиса в других языках программирования, где это не вызывает никаких проблем.
В общем, я переобулся и исправил дизлайк на лайк 👍
Теперь вот надеюсь, что изменение удастся протащить в PHP и можно будет перестать писать эти скобки.