V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
schezukNewTos
V2EX  ›  PHP

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

  •  
  •   schezukNewTos · 2016-12-19 14:15:36 +08:00 · 2793 次点击
    这是一个创建于 2898 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2016-12-20 02:29:41 +08:00
    irgil
        1
    irgil  
       2016-12-19 14:18:54 +08:00
    result = 1 的话返回 1 , result = true 的返回 true
    raincious
        2
    raincious  
       2016-12-19 14:20:35 +08:00
    @irgil 你看,仍然是完全没区别。

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

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

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

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

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

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

    a === b ? a : b;
    wdd2007
        13
    wdd2007  
       2016-12-19 16:09:51 +08:00
    哈哈 我脑残了 看错了。 等价的。
    gDD
        14
    gDD  
       2016-12-19 16:39:20 +08:00 via iPhone
    确实等价,同样想歪了。
    bombless
        15
    bombless  
       2016-12-20 02:29:41 +08:00 via Android
    可能是从一个别的什么奇怪的表达式改了逻辑变成这样的, 233
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1442 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.