PHP 速记 If/Else 使用三元运算符 (?:)

编程的一个重要部分是使用 if/else 和 switch/case 语句评估条件。 If / Else 语句很容易编写代码并且适用于所有语言。 If / Else 语句很棒,但它们可能太长。

我经常宣扬使用速记 CSS 和使用 MooTools 使 JavaScript 相对速记,所以我希望 PHP 也能做到这一点。 If/Else 语句并非在所有情况下都是最佳的(或必要的)。输入三元运算符。

三元运算符逻辑是使用“(条件)?(真返回值):(假返回值)”语句来缩短 if/else 结构的过程。

三元逻辑是什么样的?

/* most basic usage */
$var = 5;
$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

三元逻辑的优点是什么?

使用这种类型的逻辑有一些有价值的优点:

  • 使编写简单的 if/else 逻辑更快
  • 您可以将 if/else 逻辑与输出内联,而不是破坏 if/else 语句的输出构建
  • 使代码更短
  • 使维护代码更快、更容易
  • 工作安全?

使用三元运算符的提示

这里在使用“?:”逻辑时有一些提示:

  • 不要深入到你觉得可以维护的程度。
  • 如果你在一个团队设置,确保其他程序员理解代码。
  • PHP.net 建议避免堆叠三元运算符。 “[原文如此] 建议您避免“堆叠”三元表达式。PHP 在单个语句中使用多个三元运算符时的行为并不明显。”
  • 如果您没有使用过三元运算符,首先使用 if/else 编写代码,然后将代码转换为 ?’s 和 :’s。
  • 使用足够多的括号来保持代码的组织性,但不要太多以至于你创建“代码soup。 ###
     /* another basic usage */
    $message = 'Hello '.($user->is_logged_in() ? $user->get('first_name') : 'Guest');
     /* shorthand usage */
    $message = 'Hello '.($user->get('first_name') ?: 'Guest');
     /* echo, inline */
    echo 'Based on your score, you are a ',($score > 10 ? 'genius' : 'nobody'); //harsh!
     /* a bit tougher */
    $score = 10;
    $age = 20;
    echo 'Taking into account your age and score, you are: ',($age > 10 ? ($score < 80 ? 'behind' : 'above average') : ($score < 50 ? 'behind' : 'above average')); // returns 'You are behind'

    要了解有关三元运算符和用法的更多信息,请访问 PHP.net 比较运算符。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏