一、函数的定义与调用
1、初识函数
PHP函数分为:系统内部函数和自定义函数
函数:封装一段用于完成特定功能的代码
当使用一个函数时,只需关心函数的参数和返回值,就可以完成一个特定功能
PHP函数准则
函数的名称应该提示出它的功能
函数名称以字母或下划线开头(不能以数字开头)
函数的定义由4部分组成
关键字、函数名、参数、函数体
内置函数的使用
function:在声明函数时必须使用的关键字
函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写
参数1、参数2:外界传递给函数的值。它是可选的。多个参数之间使用“,”分割
函数体;函数定义的主体,专门用于实现特定功能的代码段。
返回值:需要使用return关键字将需要返回的数据传递给调用者
return关键字可以将函数的执行结果返回,
首先他的意思就是返回;return是语言结构不是函数
将函数的值传递给调用者,同时终止函数
2、参数设置
无参函数
适用于不需要提供任何的数据即可以完成指定功能的情况
对于函数来说,参数的不同设置,决定了其调用和使用方式
按值传递参数
PHP默认支持按值传递参数,按此种方式定义的函数,在函数内部可以随意对用户传递的参数进行操作。
默认值必须是常量表达式,不能是变量,如果函数有多个参数,可以为多个参数指定默认值。但是,带默认值的参数只能位于参数列表的最后,即一个默认值参数的右边不能出现没有指定参数值的参数。
3、引用传参
若需要函数修改它的参数值,则需通过函数参数的引用传递。实现方式只需在参数前添加“&”符合即可。
4、默认值参数
函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。
设置默认参数值
当用户调用函数时,如果传递的参数不是int类型,程序会强制的转换为int型后再进行操作,这种方式称为弱类型参数设置
指定参数类型(弱)
还可以将其设置为强类型的参数,即当用户传递的参数类型不符合函数的定义,程序会报错提醒。declare(strict_types=1) 开启严格模式
5、变量的作用域
在函数中定义的变量称为局部变量
在函数外定义的变量称为全局变量
示例
global全局变量和超全局变量GLOBALS
static静态变量
所有的全局变量都是静态变量,而局部变量只有定义附加上类型修饰符static,才为局部静态变量
要想知道一个函数被访问的次数,在函数中使用静态变量就能看到
局部变量
静态变量
二、函数的嵌套调用
1、嵌套调用
函数的嵌套调用;指的是在调用一个函数的过程中,调用另一个函数,这种在函数内调用其他函数的方式称为嵌套调用。
1、嵌套函数,就是在函数中定义并调用其他函数。
2、嵌套函数可以讲一个复杂的功能分解成多个子函数,在通过调用的方式结合起来,有利于提高函数的可读性。
2、递归调用
递归调用;是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调用自身的过程,这种函数称为递归函数。
三、函数的高级应用
1、可变函数
将函数名储存在一个变量中,并通过该变量来调用函数,这样可以根据不同的条件或动态的需求来调用不同的函数。可变函数在某些情况下非常有用
比如在根据用户输入的不同命令执行不同的函数时。
2、回调函数
将一个函数作为参数传递给另一个函数,并在需要的时候调用该函数
回调函数常用语事件处理、排序、过滤等场景,可以增加代码的灵活性和可复用性。
3、匿名函数
匿名函数就是没有函数名称的函数,也称作闭包含漱液,经常用作回调函数参数的值,对于临时定义的函数,使用匿名函数无需考虑函数命名冲突的问题。
匿名函数可以直接把赋数赋值给变量,匿名函数仍然是函数,可以传入参数,直接把赋数赋值给变量,调用变量即为调用函数。
匿名函数中使用外部的变量,需要通过use关键字实现use括号中即是要使用的外部变量列表
匿名函数还可以作为函数的参数传递,实现回调函数。
四、PHP的内置函数
1、字符串函数
字符串函数是PHP用来操作字符串的内置函数,在实际开发中有着非常重要的作用
1、strlen()
2、strpos()
3、strrpos()
4、str_replace()
5、substr()
6、explode()
7、implode()
8、trim()
9、str_repeat()
10、strcmp()
获取字符串的长度
PHP提供了mb_strlen()函数,用于准确的获取字符串的长度。在使用目标——strlen()
函数前,首先要确保PHP配置文件中开启了“extension=php_mbsting.dll”扩展
2、数学函数
1、abs()
2、ceil()
3、floor()
4、fmod()
5、is_nan()
6、max()
7、min()
8、pi()
9、pow()
10、sqrt()
11、round()
12、rand()