Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP是否有一个don';你不在乎哈斯克尔这样的变数吗?_Php_Variables_Haskell - Fatal编程技术网

PHP是否有一个don';你不在乎哈斯克尔这样的变数吗?

PHP是否有一个don';你不在乎哈斯克尔这样的变数吗?,php,variables,haskell,Php,Variables,Haskell,在这一天,我读到: \与列表理解中的含义相同。这意味着我们真的不在乎那部分是什么,所以我们只需要写一个\uuuu PHP中也有类似的东西吗?如果是,它可以用来做什么?如果没有,为什么开发人员选择不实现它 您是指函数中的可选参数吗?您可以这样实现: function add($x = 1, $y = 1) { return $x + $y; } add(4,5); //9 add(3); //4 注意:不能只提供第二个参数而不提供第一个参数,类似这样 add(_,4) //error!

在这一天,我读到:

\
与列表理解中的含义相同。这意味着我们真的不在乎那部分是什么,所以我们只需要写一个
\uuuu


PHP中也有类似的东西吗?如果是,它可以用来做什么?如果没有,为什么开发人员选择不实现它

您是指函数中的可选参数吗?您可以这样实现:

function add($x = 1, $y = 1) {
  return $x + $y;
}

add(4,5); //9
add(3); //4
注意:不能只提供第二个参数而不提供第一个参数,类似这样

add(_,4) //error!

不存在。

您是指函数中的可选参数吗?您可以这样实现:

function add($x = 1, $y = 1) {
  return $x + $y;
}

add(4,5); //9
add(3); //4
注意:不能只提供第二个参数而不提供第一个参数,类似这样

add(_,4) //error!

不存在。

不,没有任何东西像PHP中内置的那样。而且也没有太多类似的需求,因为PHP的功能特性现在(随着PHP5.5的出现)才刚刚从童年开始发展。目前,您还没有看到大量接受回调的函数,而且lambda语法有点冗长,因此,允许您更方便地声明lambda的功能在实用性阶梯上并不是很高

在Haskell中,
\uu
是一种简写方式,表示“这里有一个参数,但我不关心它”,并且
\u
的每个外观都被认为是一个不同于其他外观的参数

允许您模拟此语法的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(, $y) = $a; // assigns $y = 2, the first element is ignored

没有,PHP中没有类似的内置功能。而且也没有太多类似的需求,因为PHP的功能特性现在(随着PHP5.5的出现)才刚刚从童年开始发展。目前,您还没有看到大量接受回调的函数,而且lambda语法有点冗长,因此,允许您更方便地声明lambda的功能在实用性阶梯上并不是很高

在Haskell中,
\uu
是一种简写方式,表示“这里有一个参数,但我不关心它”,并且
\u
的每个外观都被认为是一个不同于其他外观的参数

允许您模拟此语法的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(, $y) = $a; // assigns $y = 2, the first element is ignored

在你想使用它的地方展示你的例子。并展示它的可能语法。@sectus我只是想知道-不知道它是否有用,这纯粹是假设。一种可能的语法可以是
$\uuu
$
,但这只是基于我的想象。请在您想使用它的地方展示您的示例。并展示它的可能语法。@sectus我只是想知道-不知道它是否有用,这纯粹是假设。一种可能的语法可以是
$\uuu
$
,但这只是基于我的想象。