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 相关文章推荐
将数组写入txt文件 var_export
Apr 21 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php中chdir()函数用法实例
Nov 13 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
php封装的mysqli类完整实例
Oct 18 PHP
如何离线执行php任务
Feb 21 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
php判断IP地址是否在多个IP段内
Aug 18 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+MySQL的聊天室设计
2006/10/09 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
JavaScript QueryString解析类代码
2010/01/17 Javascript
潜说js对象和数组
2011/05/25 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
Python模块的制作方法实例分析
2019/12/21 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
心得体会范文
2014/01/04 职场文书
化妆品促销方案
2014/02/24 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
党性观念心得体会
2014/09/03 职场文书
联谊活动总结范文
2015/05/09 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
python画条形图的具体代码
2022/04/20 Python