三元运算符
本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 30 课,共 71 课。
如果你有一个简单的 if-else,只根据条件赋值,PHP 提供了一种更简短的写法:三元运算符。
这种语法使用 ? 和 : 来创建紧凑的单行条件语句:
<?php
$age = 20;
// 使用 if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// 用三元运算符实现相同的效果
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>结构如下:condition ? value_if_true : value_if_false。
PHP 会先计算条件。如果条件为真,表达式会返回 ? 后面的值。如果条件为假,则返回 : 后面的值。
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>三元运算符非常适合简单的二选一赋值。对于包含多个条件的复杂逻辑,使用 if-elseif-else 语句可提高可读性。
挑战
简单从输入中读取两个整数:score 和 passingScore。
使用三元运算符,根据以下条件确定结果:
- 如果
score大于或等于passingScore,结果应为Passed - 否则,结果应为
Failed
将结果打印在第一行。
然后,从输入中读取一个整数 quantity。使用三元运算符确定配送信息:
- 如果
quantity大于 10,信息应为Free shipping - 否则,信息应为
Standard shipping
将配送信息打印在第二行。
示例:
如果输入是 75、60 和 15,输出应为:
Passed
Free shipping如果输入是 45、50 和 5,输出应为:
Failed
Standard shipping亲手试试
<?php
// 读取输入
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));
// TODO:在下方编写代码
// 使用三元运算符判断分数是否及格
// 使用三元运算符确定运费提示信息
// 输出结果
echo $result . "\n";
echo $shippingMessage;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器