V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
dream7758521
V2EX  ›  PHP

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

  •  
  •   dream7758521 · Mar 25, 2017 · 2702 views
    This topic created in 3327 days ago, the information mentioned may be changed or developed.
    刚看了一下 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 replies    2017-03-31 09:55:02 +08:00
    SoloCompany
        1
    SoloCompany  
       Mar 25, 2017   ❤️ 1
    你就把 OR 看成 else 好了
    herbertzz
        2
    herbertzz  
       Mar 25, 2017   ❤️ 1
    or 表示有 true 就是真,所以如果 or 左侧是 true 的话,就会忽略右侧的语句。

    比如第一句的意思, is_null() 检查 $value 是否为空, 如果是空的, 返回 true; 既然是 true 的, 那么不在执行后面的赋值语句
    dream7758521
        3
    dream7758521  
    OP
       Mar 25, 2017
    @henyi2211 谢谢你们的耐心解答
    @SoloCompany
    simbest
        4
    simbest  
       Mar 27, 2017
    if else
    ETO
        5
    ETO  
       Mar 31, 2017
    记得有个叫什么运算符短路说法,谷歌一下这个关键字吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   881 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 19:02 · PVG 03:02 · LAX 12:02 · JFK 15:02
    ♥ Do have faith in what you're doing.