加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

什么情况需要在php中使用call_user_func()

发布时间:2020-12-13 16:43:21 所属栏目:PHP教程 来源:网络整理
导读:我不理解函数,call_user_func()在某种意义上我得到它是如何工作但我不知道为什么它的需要或在什么上下文中使用它在 PHP中.就我而言,为什么不调用函数而不是用函数调用函数?日Thnx! 解决方法 我有几种情况,这是非常必要的.例如,当我创建一个允许用户构造编
我不理解函数,call_user_func()在某种意义上我得到它是如何工作但我不知道为什么它的需要或在什么上下文中使用它在 PHP中.就我而言,为什么不调用函数而不是用函数调用函数?日Thnx!

解决方法

我有几种情况,这是非常必要的.例如,当我创建一个允许用户构造编程语言部分的项目时,系统会在运行它之前将“标记”定义包装在函数中,以保证安全性.但是,在这样做时,我不能简单地调用这些函数,因为我不知道何时需要调用它们,甚至不知道名称是什么.输入call_user_func()…

所以,我相信你现在很困惑.让我解释.我的系统所做的是获取一些XML,并使用PHP将其转换为PHP / HTML / JS.这允许快速创建GUI(这是目标).以此XML为例:

<window id="login-win" title="Access Restricted" width="310" height="186" layout="accordion" layoutConfig="animate:true">
    <panel id="login-panel" title="User Login">
        <form id="login-form" title="Credentials">
            <textbox id="login-uname" label="Username"/>
            <password id="login-pass" label="Password"/>
            <submit text="Login"/>
        </form>
    </panel>
    <panel id="login-register" title="Register">
        Nothing,you can't register!
    </panel>
</window>

将读取每个XML标记,然后将其输入到相应的PHP函数中.该函数将决定如何为该1标记执行操作.为了解决这个问题,我将每个文件命名为它处理的标记.因此,例如,标签的文件是“submit.php”.该文件的内容将包含在生成的函数中,如:

function tag_submit($variables,$parent,$children){

    // deal with the data,then echo what is needed

}

该函数的名称将存储在一个数组中,与其关联的标记名称以及其余生成的函数一起存储.这使得函数生成一次,并且仅在需要时创建,节省内存,因为我会执行if(func_exists())调用以确定是否需要它.

然而,由于这都是动态的,并且用户可能想要添加新标签,<日期>标签,我需要使用call_user_func()来使事情发挥作用.如果我不知道名字是什么,我就不能对函数调用进行硬编码.

希望一切都有道理.基本上,是的,它是一个很少使用的功能,但它仍然非常有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读