我熟悉在 .php 文件顶部创建 PHP 函数的方法,例如:
function my_little_function($parm1,$parm2) {
if ($parms < $parm2) {
return "yes";
} else {
return "no";
}
}
然后像这样调用它:
$result = my_little_function("1","2");
echo "The answer is $result." . "\n";
我有一些代码,不是我写的,在像上面这样的传统函数使用中,同时在内部使用“function”和“use”。
我对此感到困惑,并向更有经验的PHP开发人员提出了一些问题。这里是我参考的PHP工作代码的一部分:
$neededObject = array_filter($st_ny_trip->STOPS->STOP,function($e) use ($final_desired_dest,$connect_raw){return $e->NAME == $final_desired_dest && DateTime::createFromFormat("m/d/Y g:i:s a", $e->TIME) > $connect_raw;});
$e
没有在函数或程序的任何部分中设置,那么是什么在使用 $e
?它如何传递值并被使用?这个函数似乎没有名称,所以我不知道它是如何被调用的,这是怎么做到的?
这是在创建一个临时函数来使用,并且每次调用此代码时都会重新生成吗?如果它是一个函数,为什么不在此函数之外创建它并调用它呢?
我自己还没有使用过 'use',所以对我来说很陌生。我在php.net上查找了它,它只是一种将值分配给某个变量的方式,但我找不到任何实际的示例来说明为什么需要它以及应该在何时使用。
我查找了 array_filter
,它说“使用回调函数过滤数组元素”。我不知道什么是回调函数。它是指 function($e)
吗?
应该将上面的PHP代码行格式化得更易于阅读吗?
array_map()
和array_filter()
中有不同的参数顺序。PHP会告诉你是否做错了,但还是很奇怪。 - Rudie