Можно ли объединить операторы сопоставления с деструктуризацией массива в PHP, чтобы добиться чего-то вроде сопоставлениPhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Можно ли объединить операторы сопоставления с деструктуризацией массива в PHP, чтобы добиться чего-то вроде сопоставлени

Сообщение Гость »


Я надеялся, что что-то подобное сработает:

$bar = match (foo()) { [] => выдать исключение, [, ] => выдать исключение, [$x] => $x, }; Где я бы проверил, дает ли foo() массив, состоящий ровно из одного элемента, и если да, сохранит этот один элемент в $bar, в противном случае выдайте исключение.

Естественно, я могу сделать это с помощью операторов if, но надеялся, что что-то похожее на этот синтаксис сработает.

Это не работает, поскольку происходит сбой в [, ] с Невозможно использовать пустые элементы массива в массивах и в $x с Неопределенная переменная — оба значения соответствуют ожиданиям.

Моя мотивация — функциональное программирование, где нечто подобное могло бы работать. Есть ли способ написать что-то похожее на мой код, который будет работать?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»