PHP中可以这样写if语句吗?还是我想多了public function getAreaList($pid = -1) { $map = array(); $pid != -1 && $map['pid'] = $pid; return $this->where($map)->order('`area_id` ASC')->findAll(); }登录后复制 $pid != -1 && $map['pid'] = $pid; return $this->where($map)->order('`area_id` ASC')->findAll(); 这两句没条件关系吧?上面的一句为什么要用&&连接呢?与直接写 $pid != -1; $map['pid'] = $pid; 的区别是什么呢? 分享到: ------解决方案--------------------&& 是逻辑与操作,并是断言的 意思就是 前一个表示式位真,才执行后一个表达式。如果为假,第二个表达式将不会执行------解决方案--------------------$pid != -1 && $map['pid'] = $pid; 相当于 if($pid != -1) { $map['pid'] = $pid; } 这是因为 && 是短路运算,如果 && 前面的表达式不成立的话,后面的表达式就不执行。 其实很不推荐这样写,一来是不清晰,容易让人混淆,二是如果&&后面内容有变化很容易出错。