匿名函数 Return 真
Anon Functions Return True
我不明白。职能。而且我经常不得不编写小循环来查找数组中的某些值。我想知道我是否可以写出如下内容:
$isItTrue = function() {
foreach($array as $key => $val) {
if($key == "foobar") retu
}
};
抱歉,我没有更好的示例,但这是一般要点。有一个更好的方法吗?似乎不需要写一个命名函数来找出如此微不足道的东西。
您的示例不有效,但很接近。看看这个变体:
<?php
$isItTrue = function($key, $array) {
return array_key_exists($key, $array);
};
$input = [
'a' => 0,
'foobar' => 1,
'b' => 2
];
var_dump($isItTrue('foobar', $input));
var_dump($isItTrue('nono', $input));
输出为:
bool(true)
bool(false)
显然你可以为此直接使用函数array_key_exists()
,但这不是重点。这里仅作为示例...
如果 php 中不存在现成的实用程序函数,您将不会四处实现小型辅助函数。尽管 php 提供了真正丰富的此类功能,但很明显,它必须受到限制。匿名函数无法解决该需求,这不是它们的目的。它们的力量在于其他地方:您可以定义多个并将它们作为 "black boxes" 交给您想要使用它们的任何地方。这意味着 运行time 环境不需要知道执行了哪个函数。它不需要直接引用它。它不需要知道函数名称。
一个典型的例子是某物的目录,也许 "features",它也提供 "validation function"。在 运行 时间,使用该函数的代码对使用什么验证函数不感兴趣。它使用目录,其中定义了一些用于验证的函数。 OOP 之外的另一种代码封装形式,如果你这么说的话。
我不明白。职能。而且我经常不得不编写小循环来查找数组中的某些值。我想知道我是否可以写出如下内容:
$isItTrue = function() {
foreach($array as $key => $val) {
if($key == "foobar") retu
}
};
抱歉,我没有更好的示例,但这是一般要点。有一个更好的方法吗?似乎不需要写一个命名函数来找出如此微不足道的东西。
您的示例不有效,但很接近。看看这个变体:
<?php
$isItTrue = function($key, $array) {
return array_key_exists($key, $array);
};
$input = [
'a' => 0,
'foobar' => 1,
'b' => 2
];
var_dump($isItTrue('foobar', $input));
var_dump($isItTrue('nono', $input));
输出为:
bool(true)
bool(false)
显然你可以为此直接使用函数array_key_exists()
,但这不是重点。这里仅作为示例...
如果 php 中不存在现成的实用程序函数,您将不会四处实现小型辅助函数。尽管 php 提供了真正丰富的此类功能,但很明显,它必须受到限制。匿名函数无法解决该需求,这不是它们的目的。它们的力量在于其他地方:您可以定义多个并将它们作为 "black boxes" 交给您想要使用它们的任何地方。这意味着 运行time 环境不需要知道执行了哪个函数。它不需要直接引用它。它不需要知道函数名称。
一个典型的例子是某物的目录,也许 "features",它也提供 "validation function"。在 运行 时间,使用该函数的代码对使用什么验证函数不感兴趣。它使用目录,其中定义了一些用于验证的函数。 OOP 之外的另一种代码封装形式,如果你这么说的话。