Нет, в PHP нет ничего подобного. И ничего подобного не было, поскольку функциональные возможности PHP теперь (с появлением PHP 5.5) только начинают расти из детства. Пока вы не видите функции, которые принимают обратные вызовы, и, кроме того, синтаксис лямбды несколько подробный, поэтому функция, которая позволяет вам более удобно объявлять lambdas, не очень высока на лестнице полезности.
В Haskell _
является сокращенным способом сказать «есть параметр здесь, но я не забочусь об этом», и каждом виде _
считается быть отличается параметром друг от друга внешнего вида.
причуда PHP, что позволяет моделировать этот синтаксис является тот факт, что функция может иметь несколько параметров с таким же именем:
// compiles with no problem!
function foo($param, $param, $param) {
echo $param;
}
foo(1, 2, 3); // prints 3
Отсюда следует, что вы можете это сделать, если вы хотите игнорировать первые два параметра функции:
function foo($_, $_, $param) {}
Однако это не означает, что ничего особенного в компиляторе и не отличается от использования различных имен для параметров. Это не идиоматический PHP и, скорее всего, путают читателей этого кода. Поэтому, пока вы можете это сделать, ИМХО, это не очень хорошая идея.
Как в стороне, есть одно место на PHP, где вам разрешено определенно заявить, что вам не нужны фрагменты информации: конструкция list
.
$a = array(1, 2);
list($x, $y) = $a; // assigns $x = 1 and $y = 2
Вы можете пропустить столько аргументов, сколько вы хотите в list
, например:
list(, $y) = $a; // assigns $y = 2, the first element is ignored
Покажите свой пример, когда вы хотите использовать его. И показать возможность синтаксиса. – sectus
@sectus Мне просто интересно - не знаю, было бы полезно, это чисто гипотетически. Возможным синтаксисом может быть '$ _' или' $ ', но это основано только на моем воображении. – Keelan