Nierówność według wartości i typu w PHP
Oprócz operatora != istnieje również
operator !==, uwzględniający typ przy
porównaniu. Przyjrzyjmy się różnicom między
nimi na przykładach.
Niech za pomocą operatora != porównywane są
dwie liczby 3. Ten operator porównuje
wartości pod kątem tego, że są NIE równe. Ponieważ
nasze wartości są właśnie równe, to na ekran
zostanie wypisany '-':
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // zadziała to, ponieważ wartości są równe
}
?>
Niech teraz jedna z naszych wartości będzie
w cudzysłowach. W tym przypadku operator !=
nadal uzna je za równe (ponieważ wartość się zgadza,
a typ nie ma znaczenia dla tego operatora)
i znowu wypisze '-':
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // zadziała to, ponieważ wartości są równe
}
?>
Porównajmy teraz dwie liczby 3
za pomocą operatora !==. On również
uzna je za równe i wypisze '-':
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // zadziała to, ponieważ wartości są równe
}
?>
A jeśli teraz jedną z trójek weźmiemy w cudzysłowy,
to operator !== uzna nasze trójki
za nierówne, ponieważ, chociaż ich wartości się pokrywają,
to mają one różny typ:
<?php
if ('3' !== 3) {
echo '+++'; // zadziała to, ponieważ wartości NIE są równe
} else {
echo '---';
}
?>
Nie uruchamiając kodu, określ, co zostanie wypisane na ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Nie uruchamiając kodu, określ, co zostanie wypisane na ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Nie uruchamiając kodu, określ, co zostanie wypisane na ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Nie uruchamiając kodu, określ, co zostanie wypisane na ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Nie uruchamiając kodu, określ, co zostanie wypisane na ekran:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>