Php为字符串组成的函数生成动态名称

时间:2017-03-13 11:13:18

标签: php function dynamic

我有另一个想法来改进我的代码。我希望生成对我的函数的公共调用,而不需要重复所有函数。

这个问题与这个问题有关:

add_subplot method

这是我的代码:

function link_01() {}
function link_02() {}
..
function link_0N() {}

我不能做的是以下内容:

$link_name = 'link_0'                                            ;

for($cont=1 ; $cont <= $this->num_links; $cont++)
{
    $linkName                   = sprintf($link_name , $cont)     ; 
    $fieldLink                 = $this->$linkName               ;       
    $fieldLink($cont)                                              ;    
}

这不起作用。我的代码有什么问题?

2 个答案:

答案 0 :(得分:0)

如果使用sprinf,则需要使用类型说明符(http://php.net/manual/ro/function.sprintf.php

$link_name = 'link_0%d'                                            ;

for($cont=1 ; $cont <= $this->num_links; $cont++)
{
    $linkName                   = sprintf($link_name , $cont)     ; 
    $fieldLink                 = $this->$linkName               ;       
    $fieldLink($cont)                                              ;    
}

答案 1 :(得分:-1)

您可以尝试 call_user_func

这是文件:

http://php.net/manual/en/function.call-user-func.php