2016-04-22 106 views
-1

为什么如果其他两个条件都内if($flw){ ... }如果和其他两个条件PHP

执行执行程序的内部if条件后执行时,else条件也执行。

这是我使用

class follow extends \Thread{ 

public $follow; 
public $query; 

public function connect(){ 
    $my = new \mysqli(SQLHOST, SQLUSER, SQLPASS, SQLDB); 
    return $my; 
} 

public function run(){} 

/***************************************** 
*sql queries related to follow system * 
*@param $x follower $y following   * 
******************************************/ 

public function followSql($x, $y){ 

    $this->query = array(


     'follow' => "INSERT INTO follow(userid, following) VALUES('$x','$y')", 

     'unfollow' => "DELETE FROM follow WHERE userid ='$x' AND following='$y'", 

     'following' => "SELECT followid FROM follow WHERE userid='".$x."' AND following='".$y."'" 
    ); 

    return $this->query; 
} 

/***************************** 
* to follow user   * 
* @param $query sql query * 
*****************************/ 
public function followDoUndo($q){ 

    try{ 

     if($this->connect()){ 

     mysqli_query($this->connect(), $q); 
     } 
    }catch(Exception $ex){ 
     var_dump($ex); 
    } 
} 

/*********************************** 
* to show user folllowing or not * 
* @param $query sql query   * 
************************************/ 
public function following($q){ 

    try{ 

     if($this->connect()){ 

      $result = mysqli_query($this->connect(), $q); 

      if (is_object($result)) { 
        if(mysqli_num_rows($result)>0) 

         $this->follow = TRUE; 
      } 
     return $this->follow; 

     } 


}catch(Exception $ex){ 
      var_dump($ex); 
     } 
    } 
} 



if($_SERVER["REQUEST_METHOD"] == "POST"){ 

    $flw = $_POST["flw"]; 
} 



if($flw){ 
    if($follow->following($follow->followSql($uid,$ud)['following'])){ 
     $follow->followDoUndo($follow->followSql($uid,$ud)['unfollow']); 
     $showText = "+ follow"; 
    } 
    else{ 
     $follow->followDoUndo($follow->followSql($uid, $ud)['follow']); 
     $showText = "following"; 
    } 
} 
+0

这不是说,如果和其他正在执行。那就是你要调用两次函数并检查你在else语句中改变的值(第一次调用),这会使你在第二次调用中陷入if语句。 – Tarek

+0

我已添加完整的代码,看看@jDo –

+0

@hassanraza酷酷。也得到了答案,我看到:) – jDo

回答

1
if (something) { //The parent IF 

    if (something else) { //The child IF 
    //do something 
    } 

    else { //Runs when the child IF is not true. 
    //do another 
    } 

} 

完全,你可以简单地说这个类:其他内不是为父母的人。这是为兄弟

+0

但成为孩子后,如果真的,程序应该终止,但它会去其他条件,为什么? –

+0

@hassanraza,这是不可能的。请逐步添加一些硬编码的回声,看看发生了什么 – Mojtaba