当前位置:  首页>> 技术小册>> PHP8入门与项目实战(2)

由于函数是一段封闭的程序,因此很多时候程序员都需要向函数内传递一些数据来进行操作。

  1. function函数名称(参数1,参数2){
  2. 算法描述,其中使用参数1和参数2
  3. }

下面以计算酒店房间住宿费总价为例进行讲解。

【例4.3】(实例文件:源文件\ch04\4.3.php)

  1. <?php
  2. function totalneedtopay($days,$roomprice){ // 声明自定义函数
  3. $totalcost = $days*$roomprice; // 计算住宿费总价
  4. echo "需要支付的总价:$totalcost"."元。"; // 输出住宿费总价
  5. }
  6. $rentdays = 3; //声明全局变量
  7. $roomprice = 168;
  8. totalneedtopay($rentdays,$roomprice); //通过变量传递参数
  9. totalneedtopay(5,198); //直接传递参数值
  10. ?>

运行结果如图4-3所示。

【案例分析】
(1)以这种方式传递参数值的方法就是向函数传递参数值。

(2)其中function totalneedtopay($days,$roomprice){}定义了函数和参数。

(3)无论是通过变量$rentdays和$roomprice向函数内传递参数值,还是像totalneedtopay(5,198)这样直接传递参数,值都是一样的。

4.2.3 向函数传递参数引用
向函数传递参数引用其实就是向函数传递变量引用。参数引用一定是变量引用,静态数值是没有引用一说的。由于在变量引用中已经知道,变量引用其实就是对变量名的使用,是对特定的变量位置的使用。

下面仍然以计算酒店服务费总价为例进行讲解。

  1. <?php
  2. $fee = 300;
  3. $serviceprice = 50;
  4. function totalfee(&$fee,$serviceprice){// 声明自定义函数,参数前多了&,表示按引用传递
  5. $fee = $fee+$serviceprice; // 改变形参的值,实参的值也会发生改变
  6. echo "需要支付的总价:$fee"."元。";
  7. }
  8. totalfee($fee,$serviceprice); //函数外部调用fun()函数前$fee =300
  9. totalfee($fee,$serviceprice); //函数外部调用fun()函数后$ fee =350
  10. ?>

运行结果如图4-4所示。

【案例分析】
(1)以这种方式传递参数值的方法就是向函数传递参数引用。使用“&”符号表示参数引用。

(2)其中function totalfee(&$fee,$serviceprice){}定义了函数、参数和参数引用。变量$fee是以参数引用的方式进入函数的。当函数的运行结果改变了变量$fee的引用时,在函数外的变量$fee的值也发生了改变,也就是函数改变了外部变量的值。


该分类下的相关小册推荐: