php - 这种没有if的判断语句怎么理解
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 13:12:52
0
5
372
$data ['ToUserName'] == 'gh_3c884a361561' || $this->init_follow ( $data );
曾经蜡笔没有小新
曾经蜡笔没有小新

Antworte allen(5)
phpcn_u1582

$data ['ToUserName'] == 'gh_3c884a361561'为真就取$data ['ToUserName']= 'gh_3c884a361561'为结果,注意是“=”,接着舍弃$this->init_follow ( $data )

$data ['ToUserName'] == 'gh_3c884a361561'为假就舍弃$data ['ToUserName']== 'gh_3c884a361561',接着判断$this->init_follow ( $data ),如果这个为真,那就获取init_follow()这个函数返回的结果

仅有的幸福
if($data ['ToUserName'] != 'gh_3c884a361561') {
    $this->init_follow ( $data );
}
伊谢尔伦

||具有短路性。||前边的语句为true,那么后边的就不不执行了。

过去多啦不再A梦

短路与和逻辑与

滿天的星座

精简写法,对比传统的if,只需要一行代码

//传统if写法:
if($data ['ToUserName'] != 'gh_3c884a361561') {
    $this->init_follow($data);
}

//推荐使用AND和OR来代替&&和||,AND和OR优先级更低,避免出现优先级问题
$data['ToUserName'] == 'gh_3c884a361561' OR $this->init_follow($data);

//比如一个优先级导致的问题
$result = true && false;//$result为false
$result = true AND false;//$result为true
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage