目录......................................................
.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 ...
随机推荐
-
【Beta】第四次任务发布
PM 日常管理&dev版宣传(周日开始). 后端 #99 服务发布 验收条件:使dev版能在www.buaaphylab.com下运行. 前端 #87 登录后能够查看与下载用户收藏的报告.生成 ...
-
Android中解析JSON格式数据常见方法合集
待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...
-
TextView属性详解
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)android:a ...
-
log4j与commons-logging,slf4j的关系(转)
前面有一篇日志中简单的介绍了 log4j,同时也介绍了它与commons-logging的关系,但是突然冒出来一个slf4j,并且slf4j有取代commons-logging的趋势,所以,我们可以推 ...
-
linux脚本Shell之awk详解(二)
三.printf的使用 print format 生成报表 %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c ...
-
Eclipse和debug的一些快捷键
F5单步调试进入函数内部. F6单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的. F7由函数内部返回到调用处. F8一直执行到下一个断点. F11 这个好 ...
-
git常用命令,助你快速入门
git是程序员中最常用的版本控制工具,学会git的基本使用是十分重要,特别是在公司里面的协同开发,废话不多说,下面贴出常用的命令. 1.基本配置 # 既然git是多人协同的工具,别人要看到你提交代码的 ...
-
转: 【Java并发编程】之十七:深入Java内存模型—内存操作规则总结
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17377197 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则, ...
-
python/ORM操作详解
一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...
-
索引堆(Index Heap)
首先我们先来看一个由普通数组构建的普通堆. 然后我们通过前面的方法对它进行堆化(heapify),将其构建为最大堆. 结果是这样的: 对于我们所关心的这个数组而言,数组中的元素位置发生了改变.正是因为 ...