Jednakost po vrednosti i tipu u PHP
Pretpostavimo da želite da poredite tako da broj
u navodnicima ne bude jednak istom broju
bez navodnika. Drugim rečima, želite
da poredite tako da poređenje bude ne samo
po vrednosti, već i po tipu podataka. Za to
umesto operatora == treba koristiti
operator ===. Poređenje sa takvim operatorom
se naziva strogim.
Pogledajte primer:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // izvršiće se ovo, jer vrednosti nisu jednake po tipu
}
?>
Međutim, pri poređenju dve niske '3'
na ekran će se ispisati '+++':
<?php
if ('3' === '3') {
echo '+++'; // izvršiće se ovo
} else {
echo '---';
}
?>
Isto, kao i pri poređenju brojeva:
<?php
if (3 === 3) {
echo '+++'; // izvršiće se ovo
} else {
echo '---';
}
?>
Razlika između dva operatora se manifestuje upravo onda kada su vrednosti iste, ali različitog tipa podataka. U ostalim slučajevima ovi operatori rade identično. Na primer, pri poređenju različitih brojeva, naravno, ispisaće se minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // izvršiće se ovo
}
?>
Trenutno je u PHP-u opšteprihvaćeno da se svuda koristi strogo poređenje. Smatra se da je u tom slučaju kod manje podložan greškama.
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>