```return true !== $result ? $result : true;```是什么 Trick?不等价于```return $result;```吗?

2016-12-19 14:15:36 +08:00
 schezukNewTos
/t/328375
2789 次点击
所在节点    PHP
15 条回复
irgil
2016-12-19 14:18:54 +08:00
result = 1 的话返回 1 , result = true 的返回 true
raincious
2016-12-19 14:20:35 +08:00
@irgil 你看,仍然是完全没区别。

对的,就是没区别。这不是 Trick ,只是习惯。
gDD
2016-12-19 14:31:43 +08:00
不谈黑点,这句 return 的意思是只有在 $result 严格等同于 true 的时候才返回 true ,否则原样返回 $result 。

这样写应该更容易看懂: return $result === true ? true : $result;

可以简写成: return $result === true ?: $result;
chairuosen
2016-12-19 14:36:56 +08:00
一样 , over
twm
2016-12-19 14:39:11 +08:00
写这样的代码该打。
wdd2007
2016-12-19 14:41:00 +08:00
不等价。

result = ['a'=>1,'b'=>2] 的话返回 ['a'=>1,'b'=>2] , result = true 的返回 true
wesley
2016-12-19 15:20:12 +08:00
`return true !== $result ? $result : true; 这个写法确实继承了 thinkphp 一贯的脱裤子放屁的传统

直接 return $result 就行,他们的脑洞不是常人能理解的。
woostundy
2016-12-19 15:23:58 +08:00
@wdd2007 所以和 return $result 到底哪里不等价了。。
ivvei
2016-12-19 15:25:13 +08:00
没区别。
holyghost
2016-12-19 15:38:59 +08:00
@wdd2007 所以哪里不等价了?。。。。
misaka20038numbe
2016-12-19 15:43:43 +08:00
他们是为了配合上面的 false !== $result 和 true !== $result ,其实没有区别
xjp
2016-12-19 15:58:13 +08:00
一样的 result 和 true 一样就返回 true 如果不一样就返回 result

想起一个段子 "和女朋友意见一样就听我的,意见不一样就听她的"

a === b ? a : b;
wdd2007
2016-12-19 16:09:51 +08:00
哈哈 我脑残了 看错了。 等价的。
gDD
2016-12-19 16:39:20 +08:00
确实等价,同样想歪了。
bombless
2016-12-20 02:29:41 +08:00
可能是从一个别的什么奇怪的表达式改了逻辑变成这样的, 233

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/328618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX