搜索

首页  >  问答  >  正文

php - 这种没有if的判断语句怎么理解

$data ['ToUserName'] == 'gh_3c884a361561' || $this->init_follow ( $data );
曾经蜡笔没有小新曾经蜡笔没有小新2844 天前374

全部回复(5)我来回复

  • phpcn_u1582

    phpcn_u15822017-05-16 13:14:52

    $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()这个函数返回的结果

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:14:52

    雷雷

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:14:52

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

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:14:52

    短路与和逻辑与

    回复
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:14:52

    精简写法,对比传统的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

    回复
    0
  • 取消回复