2016-08-03 11 views
1

Ich habe FunktionVariablen Vergleich php (strcmp), Gleichheit nicht

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>"; 
     } 
    } 
} 

Es gibt, dass

notEqual301304 
notEqual302304 
notEqual303304 
notEqual304304 
notEqual305304 
notEqual306304 
notEqual307304 

Und so weiter, aber Equal304304 nicht gedruckt werden muss, da die Variablen identisch sind. Ich habe auch versucht, das mit strcmp zu tun, aber die Ausgabe ist die gleiche.

+0

Sie sollten wirklich den Code hinzufügen, wo Sie 'strcmp' zu Ihrer Frage verwenden, da die Frage Titel es erwähnt. – jonnu

+0

Wissen Sie, dass 'strcmp'' 0' zurückgibt, wenn Strings gleich sind? – Mjh

Antwort

4

!== ist ein strict comparison operator, der beide Werte und vergleicht. So sind die Chancen $indexintca und $v[6] sind nicht der gleiche Datentyp. ($indexintca ist wahrscheinlich eine Zeichenfolge und $v[6] eine Ganzzahl). So !== ändern != so vergleichen Sie nur Werte:

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

Geändert, aber die Ausgabe ist die gleiche – Zajev

+0

[Works für mich] (https://eval.in/616823) –

+1

Versuchen Sie, var_dump ($ indexintca) und var_dump ($ v [6]) und stellen Sie sicher, dass es nichts gibt funky going on –