PHP函数
1. 函数的定义
所谓函数,就是将一些有具体功能的语句组织在了一起。定义函数的目的是为了将程序分块。方便使用,管理和阅读,调试
函数的分类:系统定义好了的函数,用户自定义的函数
2. 自定义函数
① 函数的声明
和JavaScript里面的语法是一样的:
function 函数名(参数1,参数2,参数3…)
{
//函数体
}
② 函数的调用
调用函数也非常简单,直接函数名(相应的参数)
③ 函数的参数
函数的参数分为两种:实际参数(实参),形式参数(形参)
④ 函数的返回值
可以通过一个return关键字来进行返回,如果没有设置return,系统默认返回null
一个函数是否可以有多个返回值?
写在return下面的所有代码都不会执行,但是有些时候,有些程序员会故意将某些代码写在return下面,这些代码叫做花旦。
如果我偏偏就要让一个函数返回多个值,可以通过数组的方式。
3. 函数的工作原理
当我们调用一个函数的时候,事实上就是在内存里面开辟了一个新的栈区,当函数执行完之后,新开辟的栈就会被回收。
当我们调用函数1的时候,内存里面就开辟了一个新的栈,形参就是在这个新栈里面被申明和使用的,当函数1执行完之后,这个栈就会被释放掉,所以它对实参不会有任何影响。如果函数1里面又调用函数2,则又会在内存里面开辟一个新栈。
栈区的特点:先进后出,后进先出
4. 变量的作用域
和JavaScript一样,PHP不支持块级作用域
在C语言里面,支持块级作用域
局部变量
如果没有函数,那么我们创建的变量可以在页面任何位置使用,但是一旦有了函数,就会有不同的作用域
除了外部无法访问到函数内部的变量以外,函数内部也无法访问全局变量
如果想在函数中访问一个全局变量,也不是没有办法,可以使用global关键字
除了上面的方法,还有一个方法,使用PHP内置的超全局数组$GLOBALS[ ],全局变量的变量名就是键名,变量值就是数组的值
静态变量
如果是在函数里面创建的变量,一旦函数结束,变量就会被销毁
静态变量的特点就是由于静态变量是放在静态区里面的,所以函数结束后变量不会被销毁。申明静态变量使用关键字static
5. 各种形式的PHP函数
① 常规参数函数
所谓常规参数函数,就是实参和形参个数相等,类型一致
② 引用参数函数
所谓引用参数,就是将参数的地址传递给函数,这个时候,函数里面的形参和实参都是指向同一个地址,这个时候,相当于两个是被绑定在一起的,形参一改,实参也就被修改了
需要注意一个地方:在C语言里面,如果传递的是一个数组,那么传递的是地址过去,但是在PHP里面传递数组仍然是传递值过去
如果想要传递数组的地址,仍然是形参前面加一个&就可以了
在PHP里面,有很多这样的引用传参的函数,例如:sort()函数,进行排序的函数
③ 默认参数函数
所谓默认函数参数,就是可以给函数指定一个默认参数值,当我们调用函数的时候,如果传过来了实参,就用实参,如果没有,就用默认的参数值