PHP函数
1、函数的命名
以字母或下划线开头
php中函数的作用域是全局的,在一个文件中定义后,可以在该文件的任何地方调用
php不支持函数重载,也不可以取消定义或者重定义已声明的函数
声明函数
function foo($arg_1,$arg_2)
{
statement( 函数体 )
}
<?php /* 含义:statement 陈诉 foo表示 函数名称 $arg_1 $arg_2 表示函数参数,可以为0个或多个 */ // 定义函数 function add($num1, $num2){ echo ($num1 + $num2); } // 调用函数 add(2, 3);
2、函数参数
按值传递参数 (默认)
引用传递参数及默认参数 也支持可变长度参数列表
参数传递方式:
php 函数参数传递3种方式:按值传递 引用传递 和默认参数
2-1、按值传递
function test($a){ $a = $a + 1; return $a; } $a = 1; echo test($a); //2 echo test(2); //3 echo $a; //1
2-2、引用传递
如果希望允许函数修改它的参数值,就必须通过引用传递参数
function test2(&$b){ $b = $b + 1; return $b; } $x = 1; // 变量 传入到 test2($x) 中 echo test2($x); // 这里$b已经等于2 echo $x; // 由于是引用传递 这里$x 已经等于2
2-3、可变 参数数量
php5.6 以后的版本中, "..." 表示函数可以接受一个可变数量的参数 可变参数将会被当做
一个数组传递给函数
function test4(...$num){ $acc = 0; foreach($num as $key => $value){ $acc += $value; } return $acc; } echo test4(1,2,3,4);//10 echo test4(1,2);//3
2-4、默认参数
允许使用数组 arry() 和特殊类型null作为默认参数 默认值必须是常量表达式
一般将默认参数放在参数的右侧
function test3($arr = array('lily','andy','ricky'), $str = 'apple'){ echo "I am $arr[1], I love $str <br/>"; } $names = ['sily','celon','tom']; $fruit = 'orange'; test3(); //I am andy, I love apple test3($names,$fruit); //I am celon, I love orange