跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数
目录......................................................
.00x1 可变函数
在PHP里面如果说将“函数名称”赋予字符串类型的变量。在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析。这就叫可变函数。
注:可变函数不可以用于echo,print,unset(),isset(),empty(),include,require以及类似的语言结构,需要自己封装以后实现。
.00x2 回调函数
在一个函数1中调用另一个函数2的时候,将一个函数2当做参数传进去,并且在函数1中使用。
.00x3 匿名函数
顾简单的说就是没有函数名的,但是需要注意在大括号的后面也还要再加一个分号。
.00x4 递归函数的使用
函数体自己调用自己。
...........................................................
00x1 可变函数的使用
在PHP里面如果说将“函数名称”赋予字符串类型的变量。在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析。这就叫可变函数。
注:可变函数不可以用于echo,print,unset(),isset(),empty(),include,require以及类似的语言结构,需要自己封装以后实现。
<?php
$a = 'md5';
echo $a('hello world');
echo "<br />";
echo md5('hello world');
?>
/*
输出效果如下所示:
5eb63bbbe01eeed093cb22bb8f5acdc3
5eb63bbbe01eeed093cb22bb8f5acdc3
*/
00x2 回调函数的使用
在一个函数1中调用另一个函数2的时候,将一个函数2当做参数传进去,并且在函数1中使用。
单个函数参数案例:
<?php
function play(){
echo "playing...<br />";
}
function study(){
echo "studying...<br />";
}
function sing(){
echo "singing...<br />";
}
function DoWhat($x){
echo "she ";
echo $x();
}
DoWhat('play');
?>
/*输出结果如下所示:
she playing...
*/
多个函数参数案例:
<?php
function study($username){
echo $username." studying...<br />";
}
function play($username){
echo $username." playing...<br />";
}
function eat($username){
echo $username." eating...<br />";
}
function DoWhat($functionName,$param){ #可以理解成eat就是$functionname参数,$param就是eat函数里的$username参数。
$functionName($param);
}
DoWhat('play',"望大牛");
?>
使用回调函数实现加减运算:
<?php
/*
使用回调函数实现加减操作
*/
function jiafa($x,$y){
return $x + $y;
}
function jianfa($x,$y){
return $x - $y;
}
function jiajian($suanfa,$q,$w){
return $suanfa($q,$w);
}
echo jiajian('jianfa','2','3');
?>
00x3 匿名函数的使用
顾简单的说就是没有函数名的,但是需要注意在大括号的后面也还要再加一个分号。如下所示:
<?php
$a = function(){ #再次处声明一个函数,并未声明函数名
return "hello world";
}; #记住这里要加一个分好!
echo $a(); #输出的时候输出的是变量加括号。
/**
* 输出效果如下所示:
* hello world
*/
还有一种声明匿名函数的方法;
<?php
$a = create_function('$x,$y', 'return $x + $y;'); #第一个参数是抽象参数,第二个是要执行的php语句。切记,后面的分号
echo $a(1,2);#也切记这里的参数要加上去。
/**
* 输出效果如下所示:
* 3
*/
00x4 递归函数的使用
函数体自己调用自己。
<?php
function test($x){
echo $x."<br />"; #首先先输出$x
--$x; #让$x减一
if($x>=0){ #如果$x大于等于0执行语句中的
test($x); #$x再次执行一下。这时候$x已经变成4了
}
echo test(5);
/*
输出效果如下所示
5
4
3
2
1
0
*/
跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数的更多相关文章
- 跟着百度学PHP[14]-PDO之Mysql的事务处理2
前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...
- [老老实实学WCF] 第三篇 在IIS中寄存服务
老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...
- 跟着百度学PHP[12]-文件处理 文件 目录
00x1 文件的属性 文件属性 <?php //-------------------------定义大小转换函数--------------- function changesize_dw($ ...
- (转) [老老实实学WCF] 第三篇 在IIS中寄存服务
第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...
- Python函数篇(二)之递归函数、匿名函数及高阶函数
1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...
- 跟着百度学PHP[5]函数篇1-参数
ps:俺的文章俺懂就行.大家不要拿来学习不然每个人的学习思路不一样.看视屏文章的老师不同笔记不同加上我也是新手上路,还怕误导!请大家看行且思考,帮忙挖Bug也可以. 案例要求:你可以写一个两行三列的表 ...
- 跟着百度学PHP[4]OOP面对对象编程-13-魔术方法__set(),__get(),__isset(),__unset()
__set() 在对象访问私有成员的时候自动被调用,达到了给你看,但是不能给你修改的效果!(在对象访问一个私有的成员的时候就会自动的调用该魔术方法) __get() 方法用于获取私有属性值.(在设置私 ...
- 跟着百度学PHP[6]超级全局变量
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. 参考文献:http://www.runoob.com/php/php-superglobals ...
随机推荐
- [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...
- Linux常用获取进程占用资源情况手段
测试环境:Ubuntu14.04 1. 获取进程ID号 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...
- webuploader 谷歌浏览器跨域
今天在本地调试webuploader 的image-upload demo时遇到跨域问题(本地post数据到同事的机器中) 会出现No 'Access-Control-Allow-Origin' he ...
- wpf 后台比例设置高度
ColumnDefinition cd0 = new ColumnDefinition(); cd0.Width = new GridLength(2, GridUnitType.Star); txt ...
- 学习vue.js 第一天
最近听到很多人都在用Vue.js ,我也想凑凑热闹,来个入门 啥的 ,要不以后人家说,啥都不知道,多low 看到官网 是这样介绍Vue.js Vue.js(读音 /vjuː/, 类似于 view) 是 ...
- 将字符串中的URL 解析,获取内容
parse_str() : parse_str("name=Bill&age=60"); echo $name."<br>";//Bill ...
- sass 安装、配置,css规则
http://blog.csdn.net/oyuemijindu/article/details/51036096 --sass 安装 一安装 1.ruby下载,可以到官网下载 ,注意如果是系统如果 ...
- Zabbix监控nginx-rtmp status(json版)
与前面的文章 zabbix监控nginx-rtmp status(html版)区别只在于取值的页面不一样 http://127.0.0.1:81/control/get/all_streams sta ...
- 数据结构作业——Sanji(优先队列)
山治的婚约 Description 我们知道,山治原来是地下有名的杀人家族文斯莫克家族的三子,目前山治的弟弟已经出现,叫做四治,大哥二哥就叫汪(One)治跟突(Two)治好了(跟本剧情无关) .山治知 ...
- RBAC权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角 ...