三元运算符允许你将一个简单的条件缩短为一行,在一个没有必要、复杂或完全不合适的地方进行解析。
三元运算符是if
和else
条件的缩写,所以你不需要使用它们。它们对不断重复的验证逻辑片段很有用。始终使用(条件?正逻辑:负逻辑)
的格式,包括括号。用于简短的验证,使代码更加清晰和简短。
通常情况下,我们有一个形式的条件,比如说。
$a = 5;$b = 3;if ($a > $b) {echo '它更大';} else {echo '它更小';}
因此,如果我们只想写一个简单的句子,我们必须使用4行代码,而这可以减少到1行。
$a = 5;$b = 3;echo '它是' . ($a > $b ? '较大的' : '较小的');
一般来说,三元运算符用3个部分来写(这就是它被称为 "三元 "的原因)。
(condition ? '是' : '从')
三元运算符在实践中非常常用,例如,表示表格中的偶数行。
$pole = [3, 1, 4, 1, 5, 9, 2];for ($i = 0; $pole[$i]; $i++) {echo '<tr class=""' . ($i % 2 ? '从' : '甚至') . '">';// 这是某种程度上与电子表格的工作...// 例如: echo '<td>' .$field[$i] . '</td>'。echo '</tr>';}
很多时候,我们需要检查一个变量值的存在,并在必要时立即使用它。如果它不存在,我们要返回默认值。
经典的方法是这样做的。
$a = 5;$b = 8;$c = $a ? $a : $b;
如果变量$a
存在,则使用$a
作为值,否则使用$b
。
然而,有时我们会从一个函数中得到这个值。
$a = 5;$b = 3;$default = 42;$c = my_function($a, $b) ? my_function($a, $b) : $default;
这种调用方法在系统资源方面是非常低效的。首先,必须调用该函数,如果该函数存在,则再次调用该函数以获得数值,该数值被存储在`$c'变量中。
这可以通过一个辅助变量更好地处理。
$a = 5;$b = 3;$helper = my_function($a, $b);$default = 42;$c = $helper ? $helper : $default;
三元运算符并不总是值得使用,因为它在编写复杂和嵌套条件时往往会引起混乱。
自己看一个例子。
$valid = true;$lang = '法国';$x = $valid? ($lang === '法国' ? 'oui' : '是'): ($lang === '法国' ? '非' : '从');
你会不会一看就知道变量$x
会包含oui
的值?
经过一段时间的练习,你可能会,但这并不是正确的答案。:)
三元运算符在常规验证(不)存在的值和使用其他默认值方面最为强大。
例如,我们想检查一篇文章是否存在一个主类别,如果没有,就输出一个替换信息。
echo $mainCategory ?? '该类别并不存在';
操作符??
(两个问号)检查变量$mainCategory
是否存在并且不是null
。它的工作方式与isset()
函数相同。
一个非常有用的结构,用于验证输出值是否为空(即不是 "空"、"0"、"假 "或"''(空字符串))。
这可以写成如下。
$a = 5;$b = 3;$default = 42;$c = my_function($a, $b) ?: $default;
首先调用function($a, $b)
,然后测试它的值,如果它不是空的,就立即传递给$c
变量,否则就使用$default
变量。
?:
运算符的工作原理与条件中的!=
运算符一样(无论数据类型如何都是假的),可以通过像猫王头发的笑脸来记忆,例如。
?:
操作符从PHP7开始工作。 在旧版本中,我们必须使用if (..)
条件,它可以实现同样的行为。请记住,三元运算符实际上只是写出由条件处理的相同事物的一个快捷方式。
一个值的不存在可以用isset()
函数来检查,它检查变量是否存在,并且不是空的(null
)。
而不是代码。
$a = 5;$b = 3;$c = $a ?? $b;
然后我们写下旧的替代方案。
$a = 5;$b = 3;$c = isset($a) && $a ?? $b;
警告:
isset()
的顺序和变量本身很重要。如果我们颠倒顺序,变量不存在,就会引发对不存在的变量的访问错误。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | zh