使用PHP中的call_user_func创建元素

时间:2012-07-03 07:30:24

标签: php function

我有一些PHP东西,它使用call_user_func来创建元素/对象到它所在的某个函数。

示例functions.php文件:



    function head($args=null){

       echo $args;

    }

    function footer($args=null){

       echo $args;

    }

    function createHeadTexts(){

       echo 'This is header area';

    }

    function createFooterTexts(){

       echo 'This is footer area';

    }

    //function to call this elements
    function addParam($arg, $val){

       call_user_func($arg, call_user_func($val));

    }

示例index.php文件:



    head()

    This is contents area...

    footer()

回到我的functions.php文件,我添加了对函数的调用



addParam('head','createHeadTexts')//which is I thought has to be added on a header area.
addParam('footer','createHeadTexts')//which is I thought has to be added on a footer area too.

但是当我试图查看我的PHP页面时,我遇到了一个问题。

它看起来像这样:


This is header area This is footer area 
This is contents area...

我认为文本应该显示如下:



This is header area 
This is contents area...
This is footer area

唯一的功能应放在我的index.php文件中是head()和footer()。 head()应出现在Web内容之前,footer()应出现在内容之后。

如果我想为head()创建一个元素/对象/脚本,那么它应该是addParam('head','function to create element / object / scripts');

请帮我解决这个问题,或者还有其他方法可以使用call_user_func吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我刚试过这个,结果出来了:

<?php

function head($args=null){
    echo $args;
}

function footer($args=null){
    echo $args;
}

function createHeadTexts(){
    echo 'This is header area';
}

function createFooterTexts(){
    echo 'This is footer area';
}

// function to call this elements
function addParam($arg, $val){
    call_user_func($arg, call_user_func($val));
}

addParam('head','createHeadTexts');
echo '<br />This is contents area...<br />';
addParam('footer','createFooterTexts');

?>

输出:

This is header area
This is contents area...
This is footer area

也许你忘记改变一些论点?我唯一改变的是

addParam('footer','createHeadTexts')to addParam('footer','create FOOTER Texts')