
上QQ阅读APP看书,第一时间看更新
4.2.3 向函数传递参数引用
向函数传递参数引用其实就是向函数传递变量引用。参数引用一定是变量引用,静态数值是没有引用一说的。由于在变量引用中已经知道,变量引用其实就是对变量名的使用,是对特定的变量位置的使用。
下面仍然以计算酒店服务费总价为例进行讲解。
【例4.4】(实例文件:源文件\ch04\4.4.php)
<?php $fee = 300; $serviceprice = 50; function totalfee(&$fee,$serviceprice){// 声明自定义函数,参数前多了&,表示按引用传递 $fee = $fee+$serviceprice; // 改变形参的值,实参的值也会发生改变 echo "需要支付的总价:$fee"."元。"; } totalfee($fee,$serviceprice); //函数外部调用fun()函数前$fee =300 totalfee($fee,$serviceprice); //函数外部调用fun()函数后$ fee =350 ?>
运行结果如图4-4所示。

图4-4 程序运行结果
【案例分析】
(1)以这种方式传递参数值的方法就是向函数传递参数引用。使用“&”符号表示参数引用。
(2)其中function totalfee(&$fee,$serviceprice){}定义了函数、参数和参数引用。变量$fee是以参数引用的方式进入函数的。当函数的运行结果改变了变量$fee的引用时,在函数外的变量$fee的值也发生了改变,也就是函数改变了外部变量的值。