C'è una differenza tra !==
e !=
in PHP?C'è una differenza tra! == e! = In PHP?
risposta
L'operatore !=
confronta il valore, mentre l'operatore !==
confronta anche il tipo.
Ciò significa questo:!
var_dump(5!="5"); // bool(false)
var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types
null! = "null" non è falso, esempio errato. Anche echo stampa 1 per bool (vero) e niente per bool (falso). L'output effettivo dello snippet di codice è 11. – VolkerK
@VolkerK - Non ho un interprete PHP davanti a me, ma si spera che questo sia un esempio più accurato. :-) –
Il mio errore. Grazie per la modifica, Ben Blank. Spero che il poster originale non si sia confuso. – Salty
== controlli tipo così come il valore, = controlla solo apprezzano
$num = 5
if ($num == "5") // true, since both contain 5
if ($num === "5") // false, since "5" is not the same type as 5, (string vs int)
!=
è l'inverso dell'operatore ==
, che verifica l'uguaglianza di tutti tipi
!==
è l'inverso dell'operatore ===
, che controlla l'uguaglianza solo per le cose dello stesso genere.
vedi anche http://ca2.php.net/manual/nl/language.operators.comparison.php – txwikinger
=== viene chiamato l'operatore di identità. E viene discusso a lungo nelle risposte di altre domande.
Anche le risposte degli altri qui sono corrette.
!=
è per "non uguale", mentre !==
è per "non identico". Ad esempio:
'1' != 1 # evaluates to false, because '1' equals 1
'1' !== 1 # evaluates to true, because '1' is of a different type than 1
Vedere la PHP type comparison tables su quali valori sono uguali (==
) e ciò identici (===
).
L'operatore !=
restituisce true, se i suoi due operandi hanno valori diversi.
L'operatore !==
restituisce true, se i suoi due operandi hanno valori diversi o se sono di tipi diversi.
applausi
domanda Molto spesso duplicati, a seconda di come si cerca la risposta: http://stackoverflow.com/questions/80646/how-do-the-equality-and-identity-comparison-operators- differire – spoulson