Jaka jest różnica pomiędzy operatorami: = i == i === w PHP?
W wielu językach programowania, między innymi w PHP
możesz stosować operatory =
, ==
, oraz ===
.
Często są one między sobą mylone, dlatego postanowiłem wyjaśnić Wam jaka jest różnica między nimi.
Operator =
używany jest do przypisywania wartości do zmiennej. W poniższym przykładzie przypisujemy wartość 1
do zmiennej a
.
<?php $a=1; echo $a; ?>
Wynik: 1
Spójrz na poniższy przykład. Wykorzystując operator =
w instrukcji warunkowej if
sprawdzamy, czy można przypisać wartość 1
do zmiennej $a
. Jeżeli tak, to przypisujemy i wyświetlamy. W wyniku otrzymamy 1
, mimo że wcześniej zdeklarowaliśmy wartość $a
na 0
.
<?php $a=0; if ($a=1) { echo $a; } ?>
Operator ==
służy do porównywania dwóch wartości bez względu na typ. Spójrzmy na poniższy kod.
<?php $a=1; $b='1'; if ($a==$b) { echo "Obie wartości są takie same"; } else { echo "Wartości są różne"; } ?>
W wyniku otrzymamy komunikat: “Obie wartości są takie same
“, gdyż w obu przypadkach wynoszą one 1
– mimo że wartość $a
jest typu integer
, a wartość $b
typu string
. Stosując operator ==
pomijamy sprawdzanie typu zmiennej.
Operator ===
służy do porównywania dwóch wartości oraz ich typu.
<?php $a=1; $b='1'; if ($a===$b) { echo "Obie wartości są takie same"; } else { echo "Wartości są różne"; } ?>
Tym razem w wyniku działania otrzymamy komunikat: “Wartości są różne
“, mimo iż obie zmienne mają przypisaną wartość 1
. Dzieje się tak dlatego, że $a
jest typu integer
, zaś $b
typu string
. Operator ===
porównuje zatem w zmiennych ich wartości oraz typy.