功能没有名称PHP

时间:2017-09-22 18:16:00

标签: php function

我知道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; 
}

2 个答案:

答案 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');