PHP函数
在PHP中,函数是一段PHP代码的集合,通过调用函数就可以执行一些任务或返回一些结果。PHP脚本通常是由主程序和函数构成的,这些函数不仅构成了PHP脚本的主要功能,也实现了程序代码的结构化,方便他人阅读。
函数可以分为用户自定义函数和系统函数,用户自定义函数是有用户自行编写实现的,功能也由用户所编写的代码来决定。系统函数是PHP系统或扩展库内置的函数,这些函数一般已经存在,直接调用即可。
一、用户自定义函数
定义函数的格式如下:
function function_name([$parameter[,...]]) { //函数代码段 }
定义函数的关键字为function。function_name是用户自定义的函数名,通常这个函数名可以是以字母或下划线开头后面跟0个或多个字母、下划线和数字的字符串,且不区分大小写,需要注意的是,函数名不能与系统函数或用户已经定义的函数重名。
$parameter为函数的参数,函数一般可以有0个或多个参数。当参数个数为0时,函数可以被直接调用,当参数个数不为0时,用户在调用时就需要提供有效的参数。
在函数定义时,花括号内的代码就是在调用函数时将会执行的代码,这段代码可以包括变量、表达式、流程控制语句,甚至是其他的函数或类定义。
二、参数的传递
一般情况下,参数是通过值来传递的。通过值传递参数不会应为函数内部参数值的变化而改变函数外部的值。
如果希望函数修改外部传来的参数值,可以使用引用参数传递,只要在定义函数时在参数前面加上“&”。
函数还可以使用默认参数,在定义函数时给参数赋予默认值,参数的默认值必须是常量表达式,不能是变量、类成员或函数调用。在使用默认参数时,任何默认参数都要放在非默认参数的右侧,否则函数可能不会按预期情况工作。
三、函数的作用域
在主程序定义的变量和在函数中定义的变量都是局部变量。在函数中定义的变量只能在函数内部使用。在主程序中定义的变量只能在主程序中使用,而不能在函数中使用。如果要使函数中的变量作用于函数外部,需要使用global关键字将变量声明为全局变量。函数中的变量还可以声明为静态变量,函数被调用完后静态变量的值并不丢失,在下次调用该函数时,静态变量的值是上次调用函数时赋的值。
四、函数的返回值
函数声明时,在函数代码中使用return语句可以立即结束函数的运行,程序返回到调用该函数的下一条语句。
中断函数执行并不是return语句最常用的功能,许多函数使用return语句返回一个值来与调用它们的代码进行交互。函数的返回值可以是任何类型的值,包括列表和对象。
五、函数的调用
函数在声明后就可以被调用。函数如果没有返回值,调用时使用函数名即可。如果函数具有返回值,则可以将函数的返回值赋给一个变量。
六、递归函数
PHP支持递归函数,递归函数就是调用函数本身,可以实现循环的作用。
使用递归函数时一定要给出递归的终止条件,否则函数将一直执行下去直到服务器内存耗尽,或达到最大调用次数。
七、变量函数
PHP中有变量函数这个概念,在变量的后面加上一对小括号就构成了一个变量函数。
如果创建了变量函数,PHP脚本运行时将寻找与变量名相同的函数,如果函数存在,则尝试执行该函数,如果不存在则产生一个错误。为防止这类错误,可以在调用变量函数之前使用PHP的function_exist()函数来判断该变量函数是否存在。
变量函数不能用于语言结构,如echo()、print()、unset()、include()、require()、isset()。
八、系统函数
用户自定义函数可以进行逻辑运算,而大部分的系统底层工作需要由系统函数来完成。
PHP系统了丰富的系统函数供用户使用,包括文件系统函数、数组函数、字符串函数等。并不是所有的系统函数都能直接调用,有一些扩展的系统函数需要安装扩展库之后才能调用。当前运行环境支持的函数列表可以在phpinfo页面查看。