默认参数值
本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 64 课,共 71 课。
有时,如果没有提供参数,你可能希望函数参数使用备用值。默认参数值可以让你定义调用者未指定参数时该参数应使用的值。
要设置默认值,请在函数声明中使用 = 运算符直接赋值:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>输出如下:
Hello, Alice!
Hello, Guest!调用 greet("Alice") 时,参数会覆盖默认值。不提供参数调用 greet() 时,PHP 会改用 "Guest"。
你可以混合使用必需参数和可选参数,但带默认值的参数必须放在必需参数后面:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>输出如下:
Alice is a member
Bob is a admin第一个参数 $name 是必需的,而如果未提供 $role,它的默认值为 "member"。这种模式可以让你的函数更加灵活,而无需调用方始终提供每个参数。
挑战
简单读取两行输入:
- 一个产品名称(例如,
Laptop) - 一个数量(例如,
5)。这一行输入可以为空
创建一个名为 formatOrder 的函数,它接受两个参数:$product(必需)和 $quantity(可选,默认值为 1)。函数应返回一个符合以下格式的字符串:
Order: [quantity]x [product]如果数量输入为空,只传入产品名称来调用函数(使用默认数量)。否则,传入这两个值来调用函数。
打印返回的结果。
示例 1:
如果输入是 Laptop 和 5,输出应为:
Order: 5x Laptop示例 2:
如果输入是 Keyboard 和一个空行,输出应为:
Order: 1x Keyboard示例 3:
如果输入是 Monitor 和 3,输出应为:
Order: 3x Monitor亲手试试
<?php
// 读取输入
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO:创建 formatOrder 函数,包含必填参数 $product 和可选参数 $quantity(默认值为 1)
// 函数应返回一个格式为 "Order: [quantity]x [product]" 的字符串
// TODO:根据 quantity 是否为空,以适当方式调用函数
// 如果 quantity 为空,只传入 product 调用函数(使用默认值)
// 否则,同时传入 product 和 quantity 调用函数
// 输出结果
echo $result;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器