为什么如果和其他两个条件都内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";
}
}
这不是说,如果和其他正在执行。那就是你要调用两次函数并检查你在else语句中改变的值(第一次调用),这会使你在第二次调用中陷入if语句。 – Tarek
我已添加完整的代码,看看@jDo –
@hassanraza酷酷。也得到了答案,我看到:) – jDo