PHP可变函数的使用详解


Posted in PHP onJune 14, 2013

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。
变量函数不能用于语言结构,例如 echo() ,print() ,unset() ,isset() ,empty() ,include() ,require() 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。 
Example #1 可变函数示例

<?php
function  foo () {
    echo  "In foo()<br />/n" ;
}
function  bar ( $arg  =  '' ) {
    echo  "In bar(); argument was ' $arg '.<br />/n" ;
}
// 使用 echo 的包装函数
function  echoit ( $string )
{
    echo  $string ;
}
$func  =  'foo' ;
$func ();         // This calls foo()
$func  =  'bar' ;
$func ( 'test' );   // This calls bar()
$func  =  'echoit' ;
$func ( 'test' );   // This calls echoit()
?> 
还可以利用可变函数的特性来调用一个对象的方法。

Example #2 可变方法范例
<?php
class  Foo
{
    function  Variable ()
    {
         $name  =  'Bar' ;
         $this -> $name ();  // This calls the Bar() method
     }
    function  Bar ()
    {
        echo  "This is Bar" ;
    }
}
$foo  = new  Foo ();
$funcname  =  "Variable" ;
$foo -> $funcname ();    // This calls $foo->Variable()
?>

PHP 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php使用fopen创建utf8编码文件的方法
Oct 31 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
关于PHP开发的9条建议
Jul 27 PHP
谈谈 PHP7新增功能
Dec 16 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
php微信开发之谷歌测距
Jun 14 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 #PHP
探讨:如何通过stats命令分析Memcached的内部状态
Jun 14 #PHP
利用curl 多线程 模拟 并发的详解
Jun 14 #PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 #PHP
与文件上传有关的php配置参数总结
Jun 14 #PHP
解决File size limit exceeded 错误的方法
Jun 14 #PHP
使用PHP计算两个路径的相对路径
Jun 14 #PHP
You might like
如何在PHP程序中防止盗链
2008/04/09 PHP
php 购物车的例子
2009/05/04 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
php实现微信模板消息推送
2018/03/30 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
Python流程控制 if else实现解析
2019/09/02 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
学校开除通知书
2015/04/25 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
旗帜观后感
2015/06/08 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python