$num = 10;//全局
//值参数
//值参数是将全局变量的值复制到形参中
function demo1($num){
return $num += 10;
}
echo ‘全局$num是:’.$num;//10
echo '函数以值参数调用后的$num值是:'.demo1($num);//20
echo ‘全局$num是:’.$num;//10
//引用参数
//引用参数是将全局变量的引用地址复制到形参中,函数内部对形参任何改动,都会映射到全局,这两个是内存共同体
function demo2(&$num){
return $num += 10;
}
echo '全局$num是:'.$num;
echo '函数以参数调用后的$num值是:'.demo2($num);//20
echo ‘全局$num是:’.$num;//20
//默认参数:
//适用于实参数量小于形参,多出来的形参为默认值
function demo3($n=1,$m=2,$k=3){
return '$n+$m+$k='.($n+$m+$k);
}
echo demo2();//6,可用不传参数
echo demo2(10,20);//33,可以传2个参数
echo demo2(10,20,30);//60,也可以传3个参数
//可变参数:
//函数可接受任意数量参数,适用于实际参数大于形式参数
//func_get_args():用在函数体内,将函数当前的参数打包到一个数组内返回
function demo4()
{
echo '<pre>';
print_r(func_get_args());//获取参数列表转为数组返回
echo '</pre>';
echo func_get_arg(2);//c++,查看数组中的某个元素
}
echo demo3('php','oc','c++','java');
Array ( [0] => php [1] => oc [2] => c++ [3] => java )