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

2017-03-25 00:06:34 +08:00
 dream7758521
刚看了一下 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 ??
大家麻烦看一下
2009 次点击
所在节点    PHP
5 条回复
SoloCompany
2017-03-25 03:21:31 +08:00
你就把 OR 看成 else 好了
henyi2211
2017-03-25 10:28:48 +08:00
or 表示有 true 就是真,所以如果 or 左侧是 true 的话,就会忽略右侧的语句。

比如第一句的意思, is_null() 检查 $value 是否为空, 如果是空的, 返回 true; 既然是 true 的, 那么不在执行后面的赋值语句
dream7758521
2017-03-25 15:14:52 +08:00
@henyi2211 谢谢你们的耐心解答
@SoloCompany
simbest
2017-03-27 19:43:28 +08:00
if else
ETO
2017-03-31 09:55:02 +08:00
记得有个叫什么运算符短路说法,谷歌一下这个关键字吧。

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

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

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

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

© 2021 V2EX