Quelle est la différence entre =
, ==
et ===
?
Je pense que l'utilisation d'un signe égal est de déclarer une variable tandis que deux signes égaux sont pour une condition de comparaison et enfin trois signes égaux sont pour comparer les valeurs des variables déclarées.
php
comparison
operators
fraise
la source
la source
=
en javascript. Cela ne s'applique pas seulement à PHP mais aussi à d'autres langages.Réponses:
Vous disposez de
=
l' opérateur d'affectation , de==
l' opérateur de comparaison «égal» et de===
l' opérateur de comparaison «identique» .Pour plus d'informations sur la nécessité d'utiliser
==
et===
, et sur les situations d'utilisation de chacun, consultez la documentation .la source
===
with objects vous indique s'il s'agit du même objet, pas s'ils ont le même contenu.=
est l'opérateur d'affectation==
est l'opérateur de comparaison (vérifie si deux variables ont des valeurs égales)===
est l'opérateur de comparaison identique (vérifie si deux variables ont des valeurs égales et sont du même type).la source
= 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
la source
L'opérateur = affecte la valeur à une variable $ six = 6; la valeur 6 est affectée à la variable $ six
== l'opérateur vérifie si la valeur des deux variables est égale et principalement utilisée dans des conditions comme les instructions if
=== opérateur similaire à == (vérifiez si la valeur est égale à) et vérifiez également si les deux sont du même type de données
// ici $ a est de type int alors que $ b est de type string. Alors voici la sortie
la source
Pour les utilisateurs avancés de PHP, connaître la différence entre
==
et===
et se demander "est-il plus rapide de comparer avec==
ou avec===
quand je suis sûr que les deux opérandes sont du même type?"La réponse courte et générale est: il n'y a pas de gain de performances à utiliser
===
dans ce cas, vous devriez donc probablement utiliser==
.Pour ceux qui sont intéressés à le comparer eux-mêmes, vous pouvez utiliser le code suivant que j'ai écrit ad hoc et essayer différentes valeurs pour
$a
et$b
:REMARQUE: la comparaison n'est valide que lorsque chaque "PREMIER ESSAI" est très proche de son "SECOND ESSAI". S'ils sont significativement différents, cela signifie que le processeur était occupé à faire autre chose lors de l'exécution des comparaisons et que les résultats ne sont donc pas fiables et que le benchmark doit être réexécuté.
la source
==
ou===
être la cause de votre problème de performances. IMO: Il vaut mieux être strict (===
) à moins que vous ne vouliez explicitement être lâche (==
) à propos de vos comparaisons. Le nombre de cas de bord étranges, c'est"5 is not a number" == 5
-à- dire peut conduire à des bugs farfelus.===
ne souffre jamais de ce problème.===
pour des raisons de performances, ils ont tort. Les programmeurs sont donc libres de choisir===
ou en==
fonction de raisons logiques mais pas de raisons de performances: il existe différents cas pour préférer l'un ou l'autre et la performance ne doit pas du tout être prise en compte.