编程的一个重要部分是使用 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 比较运算符。