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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了什么情况需要在php中使用call_user_func()脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我不理解函数,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()来使事情发挥作用.如果我不知道名字是什么,我就不能对函数调用进行硬编码.

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

脚本宝典总结

以上是脚本宝典为你收集整理的什么情况需要在php中使用call_user_func()全部内容,希望文章能够帮你解决什么情况需要在php中使用call_user_func()所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。