1.参数详解
案例
<?php
//定义函数
function add($arr1,$arr2){ //形参可以有多个用逗号隔开
echo $arr1+$arr2;
}
//调用函数
$num1 = 10;
add($num1,20); //传入实参,可以是变量或者其他有值的表达式(变、常量、运算符计算结果)
?>
注意
1.在php中运行实参多余形参(个数),函数内部不用而已,不影响
2.在php理论上形参个数没有限制(实际开发不会太多)
3.实参不能小于形参个数
2.函数形参的默认值
默认值:default value
,指的是形参的默认值,在函数定义的时候,就给形参进行一个初始赋值,如果实际调用传入的参数(实参)没有提供,那么形参就会使用定义的值进入函数内部参与运算。
通常默认值是用在一些,一定会有某个数据参与,但是可能通常是某个我们知道的值。
<?php
//函数的默认值
function jian($num1 = 0,$num2 = 0){
//当前$num1是形参,在编译时不执行,即便执行也是在jian函数内部,不会与外部的$num1变量冲突
echo $num1 -$num2;
}
//调用:默认值如果存在,实参可以不用传入
jian($num1,(形参默认值存在,此处实参可以不用传入));
echo $num1;
?>
注意事项:
1、默认值的定义是放在最右边的(可以有多个,但是实参不能小于形参个数),且第一个形参有默认值,第二个形参也得有默认值,不能出现这种情况function add($a=0,$b)
引用传递
实参在调用时会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递
将实参(如果是变量、常量或者其他表达式)的结果(值)取出来赋值给形参
:形参与外部实际传入的参数本身没有任何关联关系:只是结果一样而已
有的时候希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要在定义时明确告知函数,函数才会在调用的时候主动获取外部数据的内存地址。以上这种定义形式参数的方式叫作引用传值
基本定义语法:
function 函数名(形参1,&形参2(引用传值)){
//函数体
}
在调用的时候,必须在引用传值的参数位置传入实际参数,而且参数本身必须是变量。(变量才会指向数据的内存地址)
引用传值注意事项:在传入实参的时候,必须传入变量,不能传入数据本身