我知道PHP中的函数是如何工作的,但是我找到了下面的代码,我不理解这个调用:
功能($匹配)
不应该是这样的:
功能NAME_OF_FUNCTION($匹配)
有人可以解释一下吗?谢谢
// Nice little function that convert a string to uppercase by keeping the HTMLentities intact.
public static function strtoupper_entities($str) {
$patternMajEntities = '/(\&([A-Z])(ACUTE|CEDIL|CARON|CIRC|GRAVE|ORN|RING|SLASH|TH|TILDE|UML)\;)+/';
$str = preg_replace_callback ($patternMajEntities,
function ($matches) {
return "&" . $matches[2] . strtolower($matches[3]) . ";";
}, strtoupper($str));
return $str;
}
答案 0 :(得分:2)
答案 1 :(得分:2)
函数本身作为参数传递给preg_replace_callback
。结构上基本上是:
preg_replace_callback($some_value, function () { ... }, $another_value);
preg_replace_callback
的内部,该函数有一个名称,即参数的名称。因此,如果将其定义为:
function preg_replace_callback($pattern, $callback, $input)
然后在该函数内的某个地方调用传递给它的那个:
$callback();
该函数的内联声明是anonymous function。文档显示了一个更简单的演示:
$greet = function($name) {
printf("Hello %s\r\n", $name);
};
$greet('World');