前言
本文就介绍了PHP函数的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、用户自定义函数
- 函数名的命名:由字母、下划线、数字组成,字母或下划线开头。
- 函数无需在调用之前被定义。但如果当一个函数是有条件被定义时,必须在调用函数之前定义。
- PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用。
- PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。
- 递归函数。避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。 无限递归可视为编程错误。
function test($str = '') {
return "你好";
}
test();
function test1(){
function test2(){
return "你好";
}
}
//这时不能先调用test2()方法,因为test2还不存在。
test1(); //接下来就可以调用test2了
test2();
//递归函数
function test3($x){
if($x < 20){
echo $x."<br>";
$x++;
test3($x);
}
}
test3(1);
二、函数的参数
- 通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。
- 引用传递参数,&符。在函数里面改变该变量,会使外部的变量也发生变化。
- 默认参数。还允许使用数组 array 和特殊类型 NULL 作为默认参数。
- 参数类型申明。类型声明允许函数在调用时要求参数为特定类型。 如果给出的值类型不对,那么将会产生一个错误。为了指定一个类型声明,类型应该加到参数名前。
- 可变数量的参数。使用 … 来访问变量参数。
function test($x,$y){ //逗号作为分隔符
return true;
}
$a = 1;
function test1(&$a) { //引用传值
echo 'test1中的输出:'.$a."<br>";
$a++;
}
test1($a);
echo '调用方法之后的值:'.$a."<br>";
function test2($x,$y=2){ //默认参数$y
echo $x + $y;
}
test2(1);
function test3(...$numbers){ //可变数量的参数
$sum = 0;
foreach($numbers as $n){
$sum += $n;
}
return $sum;
}
echo test3(1,2,3,4);
三、返回值
- 值通过使用可选的返回语句返回。
- 可以返回包括数组和对象的任意类型。
- 返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。
- 函数不能返回多个值,但是可以返回数组(组装成数组返回)。
function test($x){
return $x * $x;
}
echo test(5);
function test2(){
return array("a","b","c","d");
}
list($aa,$bb,$cc,$dd) = test2();
总结
以上就是今天要讲的内容,本文仅仅简单介绍了PHP的函数。
- 函数命名:组成(字母、数字、下划线)。由字母或下划线开头。
- 函数无需在调用之前被定义。
- 所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用。
- 避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。
- 函数的参数:以逗号作为分隔符的表达式
- 引用传递:&符
- 默认参数。
- 可变数量的参数。使用 … 来访问变量参数。
- 可以返回包括数组和对象的任意类型。
- 返回语句会立即中止函数的运行。
- 函数不能返回多个值。