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; //12-2、引用传递
如果希望允许函数修改它的参数值,就必须通过引用传递参数
function test2(&$b){
$b = $b + 1;
return $b;
}
$x = 1; // 变量 传入到 test2($x) 中
echo test2($x); // 这里$b已经等于2
echo $x; // 由于是引用传递 这里$x 已经等于22-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);//32-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