自定义函数名

php_aga 2014-07-29 07:55:50
请问一下,PHP是否支持自定义函数在声明时,函数名称采用变量形式,如何使用?
我试过用
<?php
function $a{}
$a = 'test';
test();
?>
提示错误。
...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2014-07-29
  • 打赏
  • 举报
回复
1.使用eval

$a = 'test';
eval("function $a(){ echo 'function name is:'.__FUNCTION__;}");
test();
2.使用class 的魔术方法__call

class foo{
    public function __call($name, $param){
        if($name=='test'){
            echo 'test';
        }else{
            echo 'name not exists';
        }
    }
}

$obj = new foo();
$a = 'test';
$obj->$a();
xuzuning 2014-07-29
  • 打赏
  • 举报
回复
你可以通过类来实现(__call)
php_aga 2014-07-29
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你那样是不行的 我这样是可以的
function test() {}
$a = 'test';
$a();
问题是我不是想要这样的效果啊…… 我碰到的情况是,可能函数名称不一样,但函数的内容是一样的,但又因为特殊原因 在函数声明时,函数名称未知,只有等到实际调用时,才能确定下来。
xuzuning 2014-07-29
  • 打赏
  • 举报
回复
你那样是不行的 我这样是可以的
function test() {}
$a = 'test';
$a();

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧