Le 3 est égal à
Quelle est la différence entre =
, ==
, et ===
?
Je pense que l'utilisation d'un signe égal est de déclarer une variable, alors que les deux signes égal sont pour une condition de comparaison et, enfin, les trois signes égal sont pour comparer les valeurs des variables déclarées.
- découvrez l'exemple ... j'ai posté il permettrait de clarifier plusieurs choses ..
- Pour l'avancée des utilisateurs de PHP, de connaître la différence entre == et === et en demandant à soi "est-il plus rapide pour comparer avec == ou avec === quand je suis sûr que les deux opérandes sont de même type?", merci de regarder ma référence en matière de script ci-dessous.
- Je sens la question de la balise doit également inclure la javascript de la balise, car il s'applique également à cette langue.
- (Update): j'ai ajouté la balise javascript dans un edit, depuis il y a eu pas mal de questions où les gens ont été en utilisant
=
en javascript. Cela ne s'applique pas uniquement à PHP, mais d'autres langues également. - Je suis allé de l'avant et supprimé la balise JavaScript: toutes les réponses ici sont uniquement à propos de PHP (à l'exception de la dernière qui est très faible), il y a des différences entre la manière dont les langues de la poignée, et il y a déjà une similaire de facto canonique JavaScript question (Qui est égal à l'opérateur (== vs ===) devrait être utilisé en JavaScript comparaisons?).
Vous devez vous connecter pour publier un commentaire.
Vous avez
=
la opérateur d'affectation,==
la 'égal' opérateur de comparaison et===
la 'identique' opérateur de comparaison.Pour plus d'info sur la nécessité pour
==
et===
, et les situations d'utilisation de chacun, regardez les docs.=
est l'opérateur d'affectation==
est l'opérateur de comparaison (vérifie si
deux variables ont des valeurs égales)
===
est l'identique de comparaisonopérateur (vérifie si les deux variables
ont des valeurs égales et sont de la même
type).
opérateur d'affectation =
== vérifie si deux variables ont la même valeur
=== vérifie si deux variables ont la même valeur ET si leurs types sont les mêmes
L'opérateur = n'affecte la valeur à une variable
$six = 6; la valeur 6 est assignée à la variable $six
== opérateur de vérifier si la valeur des deux variables est égale et principalement utilisés dans des conditions telles que si les déclarations
=== opérateur similaire à == (vérifier si la valeur est égal à) et également de vérifier si les deux du même type de données
//ici $a est de type int alors que $b est de type string. Donc, ici, la sortie
Pour l'avancée des utilisateurs de PHP, de connaître la différence entre
==
et===
et de se demander "est-il plus rapide pour comparer avec==
ou avec===
quand je suis sûr que les deux opérandes sont de même type?"Court et de manière générale, la réponse est: Il n'y a pas de gain de performance à l'aide de
===
dans ce cas, vous devriez probablement utiliser==
.Pour ceux intéressés à l'analyse comparative eux-mêmes, vous pouvez utiliser le code suivant, j'ai écrit ad-hoc et d'essayer différentes valeurs pour
$a
et$b
:NOTE: La comparaison est valide seulement lors de chaque "PREMIER essai" est très proche de sa "SECONDE chance". Si ils sont nettement différents, cela signifie que le processeur est occupé à faire autre chose pendant l'exécution des comparaisons et donc les résultats ne sont pas fiables et le point de référence doit être exécuté de nouveau.
==
ou===
comme la cause de votre problème de performances. OMI: C'est mieux d'être strict (===
), à moins que vous ne souhaitiez être lâche (==
) à propos de vos comparaisons. Le nombre d'étrange cas de bord c'est à dire"5 is not a number" == 5
peut conduire à des farfelus de bugs.===
de ne jamais souffrir de ce problème.===
pour des raisons de performances, ils ont tort. Si les programmeurs sont libres de choisir===
ou==
fondée sur des raisons logiques, mais pas sur les raisons de performances: il existe différents cas de préférer l'un ou l'autre et de la performance ne doit pas être pris en compte à tous.