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

2016 年 12 月 19 日
 schezukNewTos
/t/328375
3487 次点击
所在节点    PHP
15 条回复
irgil
2016 年 12 月 19 日
result = 1 的话返回 1 , result = true 的返回 true
raincious
2016 年 12 月 19 日
@irgil 你看,仍然是完全没区别。

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

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

可以简写成: return $result === true ?: $result;
chairuosen
2016 年 12 月 19 日
一样 , over
twm
2016 年 12 月 19 日
写这样的代码该打。
wdd2007
2016 年 12 月 19 日
不等价。

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

直接 return $result 就行,他们的脑洞不是常人能理解的。
woostundy
2016 年 12 月 19 日
@wdd2007 所以和 return $result 到底哪里不等价了。。
ivvei
2016 年 12 月 19 日
没区别。
holyghost
2016 年 12 月 19 日
@wdd2007 所以哪里不等价了?。。。。
misaka20038numbe
2016 年 12 月 19 日
他们是为了配合上面的 false !== $result 和 true !== $result ,其实没有区别
xjp
2016 年 12 月 19 日
一样的 result 和 true 一样就返回 true 如果不一样就返回 result

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

a === b ? a : b;
wdd2007
2016 年 12 月 19 日
哈哈 我脑残了 看错了。 等价的。
gDD
2016 年 12 月 19 日
确实等价,同样想歪了。
bombless
2016 年 12 月 20 日
可能是从一个别的什么奇怪的表达式改了逻辑变成这样的, 233

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

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

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

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

© 2021 V2EX