Menu
CoddyTech

三元运算符

本课属于 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 语句可提高可读性。

challenge icon

挑战

简单

从输入中读取两个整数: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;
?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: PHP 在线编译器