在使用函数时,要填入与函数形式参数个数相同的实际参数(有默认参数的除外),在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据的处理和返回。在由实际参数向形式参数传递过程中,共有值传递,引用传递,默认参数3种。
1、值传递
值传递,就是将实际参数的值复制到形式参数中。然后由形式参数和函数内部的计算,函数的调用结束后,实际参数的值不会发生改变。
2、引用传递
如果要实现形式参数改变时实际参数也发生相应的改变,就要使用引用传递的方式。
参数引用的方式有两种:
①在函数定义的时候,在形式参数前面加上“&”符号,例如:
function fan(&$var1){……}
②在函数调用的时候,在实际函数前面加上“&”符号。例如:
function fan($var1)(……)
fun(&$var2)
如果形式参数$var1的值在函数中发生变化,实际参数$var2的值也会发生相应的变化。
3、默认参数
php5支持有默认值的参数,即在函数定义时可以为一个或多个形式参数指定默认值。
【实例】
<HTML>
<HEAD>
<TITLE>函数参数的传递</TITLE>
</HEAD>
<BODY>
<?php
function myfun1($var1)
{ //值传递测试函数
$var1=88;
}
function myfun2(&$var1)
{ //第一种引用传递测试函数
$var1=88;
}
function myfun3($var1)
{ //第二种引用传递测试函数
$var1=99;
}
function myfun4($string,$color="red")
{ //默认参数传递测试函数
echo "<font color=".$color.">".$string."</font>";
}
$var1=66;
$string="这是红色字体!";
echo "初始值:$var=".$var1."<br>";
myfun1($var1);
echo "值传递结束后:$var=".$var1."<br>";
myfun2($var1);
echo "第一种引用传递结束后:$var=".$var1."<br>";
myfun3(&$var1);
echo "第二种引用传递结束后:$var=".$var1."<br>";
echo "默认参数的效果为:";
@myfun4($string);
?>
</BODY>
</HTML>