2014-01-10 20 views
0

Im新類。PHP類返回回聲但不是布爾

我的班級:

if(!class_exists('my_connections')) { 
    class my_connections { 

     /* --------------- CHECKS IF CONNECTION EXISTS */ 
     public function is_connection($member_id, $connection_id) { 

     global $db; 

     $sql = "SELECT * FROM `my_connections` WHERE `member_id` = '".$member_id."' AND `connection_id` = '".$connection_id."'"; 
     $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0); 

     //echo '<pre>'. $sql .'</pre>'; 

     if(mysql_num_rows($result) > 0) { 

      echo "YES THEY ARE FRIENDS"; 
      //$return = true; 

     } else { 

      echo "NO THEY ARE NOT FRIENDS"; 
      //$return = false; 
     } 

     //return $return; 

     //echo $return; 
     } // EO method - is_connection 


    } // EO class 

} //EO if !class_exists 

實例化在這裏:

$mc = new my_connections; 

$test = $mc->is_connection('2154', '139'); 

echo $test; 

它返回的回聲聲明只是罰款,但沒有返回布爾,

爲如:不是

echo $test; 

我想在其上運行的方法進行檢查:

像這樣:

if ($test) { 
    //do something 
} 

在方法內部回聲語句將回歸真正的替代/假

+1

作爲參考,有沒有這樣的事情 「返回」 的'echo'語句(只是返回一個閉包或函數名稱來完成輸出)。 – cHao

+2

你有回聲:「他們是朋友」;在函數中。我應該是$ return = true;這在代碼 –

+0

@cHao指出。謝謝。 –

回答

0

試試這個:

if(!class_exists('my_connections')) { 
    class my_connections { 

     public function is_connection($member_id, $connection_id) { 

     global $db;  
     $sql = "SELECT * FROM `my_connections` WHERE `member_id` = '".$member_id."' AND `connection_id` = '".$connection_id."'"; 
     $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0); 

     return mysql_num_rows($result) > 0 ; 
    }  
} 

,檢查後:

if(is_connection($member_id, $connection_id)){ 
// do something 
} 
+0

工作謝謝你。 –

+1

這個三元沒有任何用處:'​​return mysql_num_rows($ result)> 0? true:false;'。它和'return mysql_num_rows($ result)> 0;' – MrLore

+0

???完全一樣​​。不,測試簡單的例子回聲4> 2?真假; – sergio

0

修改代碼如下

if(!class_exists('my_connections')) { 
    class my_connections { 

     /* --------------- CHECKS IF CONNECTION EXISTS */ 
     public function is_connection($member_id, $connection_id) { 

     global $db; 

     $sql = "SELECT * FROM `my_connections` WHERE `member_id` = '".$member_id."' AND `connection_id` = '".$connection_id."'"; 
     $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0); 

     //echo '<pre>'. $sql .'</pre>'; 

     if(mysql_num_rows($result) > 0) { 

      // echo "YES THEY ARE FRIENDS"; 
      return true; 

     } else { 

      //echo "NO THEY ARE NOT FRIENDS"; 
      return false; 
     } 

     //return $return; 

     //echo $return; 
     } // EO method - is_connection 


    } // EO class 

} //EO if !class_exists 
+0

'return = true;'? –

+0

瞭解它,謝謝:) – dev

0

修改你的類:

if(!class_exists('my_connections')) { 
    class my_connections { 

     /* --------------- CHECKS IF CONNECTION EXISTS */ 
     public function is_connection($member_id, $connection_id) { 

      global $db; 

      $sql = "SELECT * FROM `my_connections` WHERE `member_id` = '".$member_id."' AND `connection_id` = '".$connection_id."'"; 
      $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0); 

      if(mysql_num_rows($result) > 0) { 
       echo "YES THEY ARE FRIENDS"; // message is echoed when you call this method 
       return true; // your variable is set 
      } 
      else { 
       echo "NO THEY ARE NOT FRIENDS"; 
       return false; 
      } 
     } 
    } // EO class 
} //EO if !class_exists 

並且代碼:

$mc = new my_connections; 

$test = $mc->is_connection('2154', '139'); // will automatically echo something from the class and set $test to true or false 
+0

這一個作品。謝謝。 –

+0

很酷你修好了:) –