在 PHP 中除了已经给我们提供了数以千计的系统函数之外,还可以根据开发的需要来自定义函数。所谓的系统函数是就在 PHP 中提供的可以直接使用的函数,每一个系统函数都是一个完整的可以完成指定任务的代码段。
在开发时,一些常用的功能可以借助调用系统函数来完成。但是如果某些功能在 PHP 中没有提供系统函数的话,就需要我们自己来定义函数了。完成同样的任务,使用系统函数的执行效率会比自定义函数高,但两种函数在程序中的调用方式是没有区别的。
函数的定义
在 PHP 中声明一个自定义的函数可以使用下面的语法格式:
function 函数名 (参数1, 参数2, …, 参数n){
函数体;
return 返回值;
}
函数的语法格式说明如下:
- 每个函数的第一行都是函数头,由声明函数的关键字 function、函数名和参数列表三部分组成,其中每一部分完成特定的功能;
- 每个自定义函数都必须使用 function 关键字声明;
- 函数名可以代表整个函数,可以将函数命名为任何名称,只要遵循变量名的命名规则即可。每个函数都有唯一的名称,但需要注意的是,在 PHP 中不能使用函数重载,所以不能定义重名的函数,也包括不能和系统函数同名;
- 声明函数时函数名后面的小括号“()”也是必须有的,在小括号中包含了一组可以接受的参数列表,参数就是声明的变量,然后在调用函数时可以将变量传递给函数。参数列表可以为空,也可以有一个或多个参数,多个参数之间使用逗号分隔;
- 关键字“function”与函数名之间需要使用空格分隔开,而函数名与包裹参数列表的小括号之间不需要使用空格分隔,当然加上空格也不会出错;
- 函数体位于函数头后面,需要使用大括号“{}”包裹起来。函数的所用工作都是在函数体中完成的。函数被调用后,首先执行函数体中的第一条语句,执行到 return 语句或最外面的大括号“}”后结束,返回到调用函数的地方。函数体中可以使用任何有效的 PHP 代码,甚至是其他的函数或类的定义也可以在函数体中声明;
- 使用关键字 return 可以从函数中返回一个值或者表达式,程序执行到 return 语句时,该表达式将被计算,然后返回到调用函数的地方继续执行。
因为参数列表和返回值在函数定义时都不是必须的,而其他的部分是必须有的,所以声明函数时通常有以下几种方式。
1) 在声明函数时可以没有参数列表:
function 函数名(){
函数体;
return 返回值;
}
2) 在声明函数时可以没有返回值:
function 函数名(参数1, 参数2, …, 参数n){
函数体;
}
3) 在声明函数时可以没有参数列表和返回值:
function 函数名(){
函数体;
}
函数的调用
不管是自定义的函数还是系统函数,如果函数不被调用,就不会执行。只要在需要使用函数的位置,使用函数名称和参数列表进行调用即可。
函数被调用后开始执行函数体中的代码,执行完毕返回到调用的位置继续向下执行。所以在函数调用时函数名称可以总结出以下三个作用。
- 通过函数名称可以调用函数,并让函数体的代码运行,调用几次函数体就会执行几次;
- 如果函数有参数列表,还可以通过在函数名后面的小括号中传入对应的值给参数,在函数体中使用参数来改变函数内部代码的执行行为;
- 如果函数有返回值,当函数执行完毕时就会将 return 后面的值返回到调用函数的位置,这样就可以把函数名称当做函数返回的值使用。
提示:只要声明的函数在脚本中可见,就可以通过函数名在脚本的任意位置进行调用,在 PHP 中可以在函数的声明之后调用,也可以在函数的声明之前调用,还可以在函数中调用函数。
【示例】将我们讲解 for 循环时打印九九乘法表的程序封装到函数中,代码如下所示:
<?php function table(){ //定义函数 for ($i = 1; $i <= 9; $i++) { for ($j = 1; $j <= $i; $j++) { echo $j.' * '.$i.' = '.$i*$j.' '; } echo '<br>'; } } table();//调用函数 ?>
运行结果如下:
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
【示例】下面我们来定义一个函数,来实现简单的加法运算,代码如下所示:
<?php function add($num1,$num2){ $a = $num1 + $num2; return $a; } $sum = add(11,5); echo '$sum = '.$sum.'<br>'; echo '6 + 33 ='.add(6,33).'<br>'; echo '42 + 21 ='.add(42,21).'<br>'; echo '167 + 153 ='.add(167,153); ?>
运行结果如下:
$sum = 16
6 + 33 =39
42 + 21 =63
167 + 153 =320
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/557.html