PHP学习笔记(五):函数
2015-09-24 14:46
525 查看
用户自定义函数
一个函数可由以下的语法来定义:
函数名和PHP中的其他标识符命名规则相同。Note:函数名是大小写无关的。
函数无需在调用之前被定义,除非是函数是有条件被定义的,当一个函数是有条件被定义时,其定义必须在调用之前先处理。
例:
对于函数中的函数,同样是外层函数被调用以后,内层函数才可以被调用。
PHP中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数。
PHP中可以调用递归函数。但是要避免递归函数/方法调用超过100-200层,因为可能会使堆栈崩溃从而使当前脚本终止。
函数的参数
PHP支持按值传递参数(默认),引用传递参数以及默认参数(必须为常量表达式,不能是诸如变量,类成员,或者函数调用等。当使用默认参数时,任何默认参数都必须放在任何非默认参数的右侧;否则函数将不会按照预期工作。),也支持可变长度参数列表。
值传递(在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数,即在此参数的 前面加上符号&。
返回值
值通过可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
可变函数
PHP支持可变函数的概念,这意味着如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且尝试执行它。
例:
内部(内置)函数
匿名函数
匿名函数(Anonymous Functions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用做回掉函数(callback)参数的值。
一个函数可由以下的语法来定义:
function add($arg1,$arg2) { return $arg1+$arg2; } $result = add(3,4);
函数名和PHP中的其他标识符命名规则相同。Note:函数名是大小写无关的。
函数无需在调用之前被定义,除非是函数是有条件被定义的,当一个函数是有条件被定义时,其定义必须在调用之前先处理。
例:
$flag = true; /*不能在此处调用foo()函数,因为它还不存在,但可以调用bar()函数。*/ bar(); if($flag){ function foo() { echo "I don't exist until program reaches me.\n"; } } /*现在可以安全调用函数foo()了,因为条件为真,函数被定义了*/ if ($flag) foo(); function bar() { echo "I exist inmediately upon program start.\n" }
对于函数中的函数,同样是外层函数被调用以后,内层函数才可以被调用。
PHP中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数。
PHP中可以调用递归函数。但是要避免递归函数/方法调用超过100-200层,因为可能会使堆栈崩溃从而使当前脚本终止。
函数的参数
PHP支持按值传递参数(默认),引用传递参数以及默认参数(必须为常量表达式,不能是诸如变量,类成员,或者函数调用等。当使用默认参数时,任何默认参数都必须放在任何非默认参数的右侧;否则函数将不会按照预期工作。),也支持可变长度参数列表。
值传递(在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数,即在此参数的 前面加上符号&。
返回值
值通过可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
可变函数
PHP支持可变函数的概念,这意味着如果一个变量名后有圆括号,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()
内部(内置)函数
匿名函数
匿名函数(Anonymous Functions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用做回掉函数(callback)参数的值。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充