TGViewer
Пых Пых @phpyh · 7.83K subscribers
Post #622 6.22K
Новые инициативы в PHP от наших!

Дмитрий Дерепко на прошлой неделе получил карму в internals и сейчас активно хэндлит две интересные темы для PHP 8.5.

1. return, break и continue — выражения


while ($condition) {
$element = $element->parent() ?? break;
// ...
}

$resolved = $this->resolve($value) ?? return;


У себя на канале Дмитрий привёл мотивацию для этого изменения. У меня пока нет однозначного мнения. С одной стороны, да, код выглядит лаконичнее, с другой — ранние return менее заметны и чтение осложняется.

Кстати, одну лаконичную конструкцию мы сами себе давно запретили в PSR 2 и 12:


if ($condition) return/break/continue;


Если инструкции станут выражениями, то правило "There MUST NOT be more than one statement per line" на них не будет распространяться, но суть-то не поменяется...

Также реализация всей задумки сопряжена с трудностями на уровне компиляции (см. комментарии Ильи), так что пока игра как будто бы не стоит свеч. Пишите, в комментариях что вы думаете по этому поводу.

2. match (true) {} -> match {}

Ранее Ларри уже готовил такой RFC, но до голосования он так и не дошёл. Новое обсуждение тут: https://externals.io/message/126266. Рассмотрим типичный пример использования match (true):


match (true) {
$value === null => ...,
is_string($value) => ...,
$value instanceof A => ...,
}


Почему мы вынуждены писать код наоборот? Потому что у нас пока нет pattern matching. ЕслиКогда RFC Ильи и Ларри одобрят, сниппет можно будет существенно упростить:


match ($value) is {
null => ...,
string => ...,
A => ...,
}


Но даже тогда match (true) всё равно будет полезен, так как несложно придумать пример, где проверяемые условия относятся не к одному значению, а к нескольким. Писать match вместо match (true) так же естественно, как if ($a && $b) вместо if (($a && $b) === true). Я всеми руками и ногами за это изменение, желаю Дмитрию терпения и удачи!
  • 👍 43
  • 🔥 15
  • 🥴 8
  • ❤ 3
  • 💩 1
More from @phpyh
  1. Sep 30, 2026🍺 BeerPHP AI Moscow Кажется, «неделя PHP» потихоньку превращается в месяц PHP. 😅 Будет 2…
  2. Sep 28, 2026Запустили Пыхник и неделю PHP! Залетайте на первый открытый доклад от Дмитрия Dantes про к…
  3. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  4. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  5. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  6. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →