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

看了一下 ci 源码,有一段没搞懂什么意思

  •  
  •   dream7758521 · 2017-03-25 00:06:34 +08:00 · 2124 次点击
    这是一个创建于 2789 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚看了一下 github 上有人写的博客程序,用 ci 框架写的,
    里面有个类似 {SELECT * FROM `article` LIMIT 参数 1 , 参数 2}的控制器,其中的参数 2 居然是 0 ,按道理参数 2 为 0 的话,数据读不出来,机子上运行了一下,居然可以,我就打开 ci 的核心库看看函数是咋写的,居然没看懂!里面有这样一段

    public function limit($value, $offset = 0)
    {
    is_null($value) OR $this->qb_limit = (int) $value;
    empty($offset) OR $this->qb_offset = (int) $offset;
    return $this;
    }
    函数中间两行我没看懂,第一次见这种写法, bool 运算后转 int ??
    大家麻烦看一下
    5 条回复    2017-03-31 09:55:02 +08:00
    SoloCompany
        1
    SoloCompany  
       2017-03-25 03:21:31 +08:00   ❤️ 1
    你就把 OR 看成 else 好了
    henyi2211
        2
    henyi2211  
       2017-03-25 10:28:48 +08:00   ❤️ 1
    or 表示有 true 就是真,所以如果 or 左侧是 true 的话,就会忽略右侧的语句。

    比如第一句的意思, is_null() 检查 $value 是否为空, 如果是空的, 返回 true; 既然是 true 的, 那么不在执行后面的赋值语句
    dream7758521
        3
    dream7758521  
    OP
       2017-03-25 15:14:52 +08:00
    @henyi2211 谢谢你们的耐心解答
    @SoloCompany
    simbest
        4
    simbest  
       2017-03-27 19:43:28 +08:00
    if else
    ETO
        5
    ETO  
       2017-03-31 09:55:02 +08:00
    记得有个叫什么运算符短路说法,谷歌一下这个关键字吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1852 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.