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;
は
if($pid != -1) {
$map[ 'pid'] = $pid;
}
これは、&& の前の式が成立しない場合、次の式は実行されないためです。
実際、このように書くことはお勧めできません。第 1 に、&& の後の内容が変わると間違いを犯しやすくなります。
if (A 条件 && B 条件) {
....
}
A と B が両方とも true の場合にのみ実行されます。
if($pid != -1) {
$map['pid'] = $pid; と同等
これは、&& が短絡演算であるため、&& の前の式が成立しない場合、次の式は実行されません。
実際、このように書くことはお勧めできません。第 1 に、&& の後の内容が変更されると、間違いが発生しやすくなります。 わかりました、ありがとう、私自身はこのように書くことはめったにありません。他の人のコードを見るのはとにかくやりがいがあります