第 3 章 · 函数 · 第 3.1 课
函数
函数把一段代码打包起来,起个名字,以后反复调用。用 function 定义,return 返回结果。
默认参数、类型声明、命名参数
- 参数可以有默认值:
$discount = 1.0,调用时不传就用默认值。 - 可以声明参数和返回值的类型:
float $amount、: string。传错类型时 PHP 会尽量转换,转换不了就报错,能尽早发现 bug。 - PHP 8 支持命名参数:调用时写
参数名: 值,可以不按顺序,也更易读。
可变参数和返回多个值
...$nums 把所有传进来的参数收集成一个数组。想返回多个值时,可以返回一个数组,调用处用 [$a, $b] = ... 解构。
?int 表示“int 或 null”,void 表示不返回任何值。
选择题
下面代码输出什么?
<?php
function f($a, $b = 2) {
return $a * $b;
}
echo f(3);
练习 1
是不是偶数
已通过补全函数 isEven:参数是偶数时返回 true,否则返回 false。注意是 return,不是 echo。
检查时会调用 isEven(4)、isEven(7)、isEven(0)、isEven(-3)。
练习 2
FizzBuzz 函数版
已通过写函数 fizzbuzz(int $n): string,按 FizzBuzz 规则返回字符串:能被 15 整除返回 "FizzBuzz",被 3 整除返回 "Fizz",被 5 整除返回 "Buzz",其他返回数字本身(字符串形式)。
练习 3
求平均数
已通过写函数 average(array $nums): float,返回平均值。空数组返回 0(直接除会报 Division by zero 错误)。