不,PHP 中没有类似的东西。并且没有太多需要类似的东西,因为 PHP 的功能特性现在(随着 PHP 5.5 的出现)才刚刚开始从童年时代发展出来。目前,您还没有看到很多接受回调的函数,而且 lambda 语法有些冗长,因此允许您更方便地声明 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