当前位置: 首页 > 面试题库 >

为什么以及如何在PHP中使用匿名函数?

袁山
2023-03-14
问题内容

PHP 5.3提供了匿名函数。
我应该使用它们还是避免使用它们?如果是这样,怎么办?

编辑 ; 刚刚发现了一些与php匿名函数有关的妙招…

$container           = new DependencyInjectionContainer();
$container->mail     = function($container) {};
$conteiner->db       = function($container) {};
$container->memcache = function($container) {};

问题答案:

当使用需要回调函数的函数(例如array_filterarray_map做)时,匿名函数非常有用:

$arr = range(0, 10);
$arr_even = array_filter($arr, function($val) { return $val % 2 == 0; });
$arr_square = array_map(function($val) { return $val * $val; }, $arr);

否则,您将需要定义一个只能使用一次的函数:

function isEven($val) { return $val % 2 == 0; }
$arr_even = array_filter($arr, 'isEven');
function square($val) { return $val * $val; }
$arr_square = array_map('square', $arr);


 类似资料:
  • php版本: 5.4 我定义了一个这样的函数 输出是 如何在的正文中引用。

  • 我知道可以用Scala表示如下: 我明白为什么它是有用的。例如,给定两个函数: 我可以很容易地编写函数<code>getPhoneByUserId(userId:Int),因为<code>选项是一个单子: ... 现在我看到Scala中的< code >应用函子: 我想知道我什么时候应该使用它而不是monad。我想Option和List都是。您能否举一个简单的例子来使用与Option和List一起

  • 问题内容: 在严格模式下使用javascript时,为什么在匿名函数中未定义此函数?我知道为什么这样做可能有意义,但是我找不到任何具体答案。 例: 问题答案: 这是因为,在ECMAscript 262第5版之前,如果使用的人忘记使用该关键字,那会造成很大的混乱。如果在ES3中调用构造函数时忘了使用,请引用全局对象(在浏览器中),然后用变量破坏全局对象。 这是可怕的行为等人在ECMA决定,只是为了集

  • 问题内容: 在JavaScript中,您可以定义立即执行的匿名函数: 您可以在PHP中做类似的事情吗? 问题答案: 对于PHP7:请参阅OhgakiYasuo的答案: 对于以前的版本:我能想到的立即执行它们的唯一方法是

  • 本文向大家介绍PHP匿名函数,包括了PHP匿名函数的使用技巧和注意事项,需要的朋友参考一下 介绍 匿名函数是没有任何用户定义名称的函数。这样的函数也称为闭包或lambda函数。有时,您可能希望功能一次使用。Closure是一个匿名函数,它在定义它的环境中关闭。您需要在其中指定use关键字。匿名函数的最常见用法是创建内联回调函数。 语法 在function关键字和左括号之间没有函数名称。 函数定义后

  • 问题内容: 我试图学习有关PHP函数sprintf()的更多信息,但由于我仍然感到困惑,php.net并没有太大帮助,您为什么要使用它? 看下面我的例子。 为什么使用这个: 当这样做相同并且更容易编写IMO时: 我在这里想念什么吗? 问题答案: 具有原始printf的所有格式化功能,这意味着您不仅可以在字符串中插入变量值,还可以做更多的事情。 例如,指定数字格式(十六进制,十进制,八进制),小数位