跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数

时间:2022-09-24 10:50:51

目录......................................................

.00x1 可变函数

在PHP里面如果说将“函数名称”赋予字符串类型的变量。在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析。这就叫可变函数。
注:可变函数不可以用于echo,print,unset(),isset(),empty(),include,require以及类似的语言结构,需要自己封装以后实现。

.00x2 回调函数

在一个函数1中调用另一个函数2的时候,将一个函数2当做参数传进去,并且在函数1中使用。

.00x3 匿名函数

顾简单的说就是没有函数名的,但是需要注意在大括号的后面也还要再加一个分号。

.00x递归函数的使用

函数体自己调用自己。

...........................................................

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
*/

00x递归函数的使用

函数体自己调用自己。

<?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中的特殊形式的函数的更多相关文章

  1. 跟着百度学PHP&lbrack;14&rsqb;-PDO之Mysql的事务处理2

    前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...

  2. &lbrack;老老实实学WCF&rsqb; 第三篇 在IIS中寄存服务

    老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...

  3. 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------&gt&semi; 可以返回派生类对象的引用或指针

      您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...

  4. 跟着百度学PHP&lbrack;12&rsqb;-文件处理 文件 目录

    00x1 文件的属性 文件属性 <?php //-------------------------定义大小转换函数--------------- function changesize_dw($ ...

  5. (转) &lbrack;老老实实学WCF&rsqb; 第三篇 在IIS中寄存服务

    第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...

  6. Python函数篇(二)之递归函数、匿名函数及高阶函数

    1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...

  7. 跟着百度学PHP&lbrack;5&rsqb;函数篇1-参数

    ps:俺的文章俺懂就行.大家不要拿来学习不然每个人的学习思路不一样.看视屏文章的老师不同笔记不同加上我也是新手上路,还怕误导!请大家看行且思考,帮忙挖Bug也可以. 案例要求:你可以写一个两行三列的表 ...

  8. 跟着百度学PHP&lbrack;4&rsqb;OOP面对对象编程-13-魔术方法&lowbar;&lowbar;set&lpar;&rpar;,&lowbar;&lowbar;get&lpar;&rpar;,&lowbar;&lowbar;isset&lpar;&rpar;,&lowbar;&lowbar;unset&lpar;&rpar;

    __set() 在对象访问私有成员的时候自动被调用,达到了给你看,但是不能给你修改的效果!(在对象访问一个私有的成员的时候就会自动的调用该魔术方法) __get() 方法用于获取私有属性值.(在设置私 ...

  9. 跟着百度学PHP&lbrack;6&rsqb;超级全局变量

    超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. 参考文献:http://www.runoob.com/php/php-superglobals ...

随机推荐

  1. 【Beta】第四次任务发布

    PM 日常管理&dev版宣传(周日开始). 后端 #99 服务发布 验收条件:使dev版能在www.buaaphylab.com下运行. 前端 #87 登录后能够查看与下载用户收藏的报告.生成 ...

  2. Android中解析JSON格式数据常见方法合集

    待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...

  3. TextView属性详解

    android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)android:a ...

  4. log4j与commons-logging,slf4j的关系(转)

    前面有一篇日志中简单的介绍了 log4j,同时也介绍了它与commons-logging的关系,但是突然冒出来一个slf4j,并且slf4j有取代commons-logging的趋势,所以,我们可以推 ...

  5. linux脚本Shell之awk详解&lpar;二&rpar;

    三.printf的使用   print format 生成报表 %d        十进制有符号整数 %u        十进制无符号整数 %f        浮点数 %s        字符串 %c ...

  6. Eclipse和debug的一些快捷键

    F5单步调试进入函数内部.  F6单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的.  F7由函数内部返回到调用处.  F8一直执行到下一个断点.  F11 这个好 ...

  7. git常用命令,助你快速入门

    git是程序员中最常用的版本控制工具,学会git的基本使用是十分重要,特别是在公司里面的协同开发,废话不多说,下面贴出常用的命令. 1.基本配置 # 既然git是多人协同的工具,别人要看到你提交代码的 ...

  8. 转: 【Java并发编程】之十七:深入Java内存模型—内存操作规则总结

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17377197 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则, ...

  9. python&sol;ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

  10. 索引堆(Index Heap)

    首先我们先来看一个由普通数组构建的普通堆. 然后我们通过前面的方法对它进行堆化(heapify),将其构建为最大堆. 结果是这样的: 对于我们所关心的这个数组而言,数组中的元素位置发生了改变.正是因为 ...