Równość według wartości i typu w PHP
Załóżmy, że chcesz porównywać w taki sposób, aby liczba
w cudzysłowach nie była równa tej samej liczbie
bez cudzysłowów. Innymi słowy, chcesz
porównywać w taki sposób, aby porównanie dotyczyło nie tylko
wartości, ale także typu danych. W tym celu
zamiast operatora == należy używać
operatora ===. Porównanie z takim operatorem
nazywa się ścisłym.
Zobacz przykład:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // zadziała to, ponieważ wartości nie są równe według typu
}
?>
A przy porównaniu dwóch ciągów '3'
na ekranie wyświetli się '+++':
<?php
if ('3' === '3') {
echo '+++'; // zadziała to
} else {
echo '---';
}
?>
Podobnie jak przy porównywaniu liczb:
<?php
if (3 === 3) {
echo '+++'; // zadziała to
} else {
echo '---';
}
?>
Różnica między tymi dwoma operatorami ujawnia się właśnie wtedy, gdy wartości są takie same, ale typ danych jest inny. W pozostałych przypadkach te operatory działają tak samo. Na przykład, przy porównywaniu różnych liczb, oczywiście, wyświetli się minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // zadziała to
}
?>
Obecnie w PHP powszechnie przyjęte jest używanie wszędzie ścisłego porównania. Uważa się, że w takim przypadku kod jest mniej podatny na błędy.
Bez uruchamiania kodu określ, co wyświetli się na ekranie:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez uruchamiania kodu określ, co wyświetli się na ekranie:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez uruchamiania kodu określ, co wyświetli się na ekranie:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez uruchamiania kodu określ, co wyświetli się na ekranie:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez uruchamiania kodu określ, co wyświetli się na ekranie:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>