在php中添加函数名称的参数?

时间:2011-09-12 10:04:26

标签: php

实际上我希望创建一个将所有类似函数与类似函数名称相结合的函数。例如,

<?php
//this function carry the function name I wish to create. For example:function try
a("try");


function a($arg)
{
  //I wish to create function with the name carried by $arg
  //but function $arg won't work
}
?>

任何人都可以指导我这个功能吗?

1 个答案:

答案 0 :(得分:1)

PHP能够将变量用作调用时函数名,因此您只需要

function a($arg)
{
    if (!function_exists($arg)) {
        throw new InvalidArgumentException(
            sprintf('"%s" is not a valid function', $arg));
    }
    $arg();
}

如果你必须走下功能路径,你应该正确地做到这一点

function a(Closure $callback)
{
    $callback();
}

a(function() {
    echo 'This is a callback';
});

甚至

$b = function() {
    echo 'I am an anonymous function';
};

a($b);

请参阅http://php.net/manual/en/functions.anonymous.php