我有一些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吗?
谢谢,
答案 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')