比如
$id = $name != '' ? $key : (is_numeric($key) ? $key : '');
歌词大意
如果 $name != '' $id 等于 $key 否则
如果 $key 是数字, $id 等于 $key,否则 $id 等于空
1
hoythan OP 小括号是我瞎编的,我不知怎么连续写.
|
3
shiny 2017-02-16 18:13:58 +08:00
这种情况慎用三元运算符
|
4
ALeo 2017-02-16 18:15:46 +08:00
这种三目表达式 写那么复杂干嘛呢。。
其实也就是 ·· $id = $name != '' && is_numeric($key) ? $key : ''; 就可以了。 |
5
allenhu 2017-02-16 18:17:02 +08:00
拖出去剁了
|
6
wclssdn 2017-02-16 18:17:04 +08:00
你这么写你自己看的懂么?看你代码的其他人看的懂么?
如果你想看着简介(简短,易懂),可以看看这段: $id = ''; $name && is_numeric($key) && $id = $key; // 如果 name 不为空,并且 key 是数字,则 id=key |
10
Mitt 2017-02-16 18:33:07 +08:00
如果是三元的话 可以 exp ? ret1 : exp2 ? ret2 : exp3 ? ret3 : exp4 ? ret4 : ret5 ; 这种一直续下去的,当然你的代码更适合上面大神们说的 && 和 || 来解决问题, 我建议如果不是简单三目的话 宁可多写几行代码也不要用三目偷懒,因为对可读性是相对比较差的
|
11
hoythan OP |
14
shiny 2017-02-16 19:29:25 +08:00
|
16
l12ab 2017-02-16 20:19:26 +08:00
这种情况我宁愿多写几个 if else ,看起来舒服些
|
19
abugs 2017-02-16 21:07:50 +08:00
三元一般够用,如果你有多个 if ,建议使用常规 if else
|
20
konakona 2017-02-16 21:13:05 +08:00
这个可以的,这样写没有问题,能阅读。只是容易不小心写错。
|
21
wizardoz 2017-02-16 21:16:11 +08:00
写多个条件就不是简写了
|
23
keinx 2017-02-16 21:28:59 +08:00
你入错行了,来 Python ,人生苦短我用 python
|
25
Reign 2017-02-16 21:32:27 +08:00
这年头,为了装逼也是蛮拼的
|
26
cxbig 2017-02-17 01:51:40 +08:00
你见哪个外国人这么写赶快拉黑
Ternary Operator 嵌套不符合 Best Practice 原则。他人很难看清楚逻辑结构 在我们公司,写成这样绝对过不了代码审查 写成一行也不代表跑起来就快 |
27
flydogs 2017-02-17 08:37:25 +08:00
老老实实 if else
|
28
juice 2017-02-17 09:08:44 +08:00
代码优先给人读,次之再给机器读
|
29
killerv 2017-02-17 10:16:37 +08:00
代码可读性很重要
|
31
v2dead 2017-02-17 10:53:35 +08:00
wordpress 出了名的烂代码,背了那么多年的历史包袱,你居然作参考。。
|
32
orderc 2017-02-17 14:54:16 +08:00
论代码可读性的重要性
a == b && c = d ,我同事总这样写,每次看到这样的代码脑子都要短路一下 |