2017-05-07 3 views
1

J'apprends des trucs de validation, et je ne peux pas comprendre:ne peut pas comprendre la logique de validation: === == vs

if (strpos($value, "@") === false) { echo "Validation failed." } 

Quelle est la différence entre === et ==? et pourquoi ne pouvons-nous pas utiliser == à la place et pourquoi est-ce === false? fait faux signifie que @ n'est pas dans le $value ou cela signifie 0?

Répondre

0

L'égalité opérateur ==
A == B vérifie si A et B sont égaux entre eux, mais pas si elles sont le même type de données.

Un exemple pertinent: 0 == false est vrai

l'opérateur identité ===
A === B vérifie si A et B sont égaux entre eux également le même type de données.

Un exemple pertinent: 0 === false est faux

application Ici

Appliqué à votre cas, si le @ a été trouvé que le premier caractère de la chaîne, strpos($value,"@") reviendriez 0. S'il n'est pas trouvé du tout, il retournera false. Donc, pour ne pas confondre ces deux situations, le test doit utiliser === plutôt que ==.

références utiles:

http://php.net/manual/en/function.strpos.php http://php.net/manual/en/language.operators.comparison.php

J'ai pensé que c'est php, mais les opérateurs d'égalité et d'identité sont communs à de nombreux langages de programmation.

+0

merci beaucoup frère! :) –

+0

Pas de soucis. Veuillez marquer ma réponse comme acceptée en guise de remerciement et pour aider les autres utilisateurs à trouver des informations utiles. –

+0

désolé ne savait pas, un peu nouveau laissez-moi vérifier –