2016-08-03 10 views
1

を失敗した私は、機能変数の比較PHP(strcmpの)、平等は

if ((isset($_REQUEST['onlinca']) && $_REQUEST['onlinca'] == true)) { 
    $resultintca = mysqli_query($maincon, "SELECT * FROM Exten"); 
    while ($row = mysqli_fetch_assoc($resultintca)) { 
     $indexintca = $row['Index']; 
     if (($indexintca !== $v[6])) { 
      echo "notEqual"; 
      print_r ($indexintca); 
      print_r ($v[6]); 
      echo "<br>"; 
     } 
    } 
} 

を持っていることは

notEqual301304 
notEqual302304 
notEqual303304 
notEqual304304 
notEqual305304 
notEqual306304 
notEqual307304 

ことそしてそうに出力しますが、変数が同一であるとしてEqual304304が印刷されている必要はありません。 私はまたstrcmpを使ってそれを試みましたが、出力は同じです。

+0

質問のタイトルはそれを言及ので、あなたは本当に、あなたの質問にあなたが 'strcmp'を使用しているコードを追加する必要があります。 – jonnu

+0

文字列が等しい場合、 'strcmp'は' 0'を返します。 – Mjh

答えて

4

!==は、タイプの両方を比較するstrict comparison operatorです。したがって、オッズは$indexintcaであり、$v[6]は同じデータ型ではありません。 ($indexintcaはおそらく文字列で、$v[6]は整数です)。だから、これだけの値を比較!=!==を変更します。

if (($indexintca != $v[6])) { 
+0

変更されましたが、出力が同じです – Zajev

+0

[Works for me](https://eval.in/616823) –

+1

var_dump($ indexintca)とvar_dump($ v [6])を試して、 funky going on –