1

我有一个 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() 应该出现在网页内容之前,footer() 应该出现在内容之后。

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

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

谢谢,

4

1 回答 1

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') 到 addParam('footer','create FOOTER Texts')

于 2012-07-03T07:37:46.433 回答