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.