Barazia sipas vlerës dhe tipit në PHP
Le të supozojmë që dëshironi të krahasoni në mënyrë që një numër
brenda thonjëza të mos jetë i barabartë me të njëjtin numër
pa thonjëza. Me fjalë të tjera, ju dëshironi
të krahasoni në mënyrë që krahasimi të jetë jo vetëm
sipas vlerës, por edhe sipas tipit të të dhënave. Për këtë
në vend të operatorit == duhet të përdorni
operatorin ===. Krahasimi me një operator të tillë
quhet i rreptë.
Shikoni shembullin:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // do të ekzekutohet kjo, sepse vlerat nuk janë të barabarta sipas tipit
}
?>
Por kur krahasoni dy vargje '3'
në ekran do të shfaqet '+++':
<?php
if ('3' === '3') {
echo '+++'; // do të ekzekutohet kjo
} else {
echo '---';
}
?>
Po kështu, edhe kur krahasoni numra:
<?php
if (3 === 3) {
echo '+++'; // do të ekzekutohet kjo
} else {
echo '---';
}
?>
Dallimi midis dy operatorëve shfaqet pikërisht kur vlerat janë të njëjta, por tipi i të dhënave është i ndryshëm. Në raste të tjera këta operatorë punojnë njësoj. Për shembull, gjatë krahasimit të numrave të ndryshëm, sigurisht që do të shfaqet minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // do të ekzekutohet kjo
}
?>
Në PHP-në e sotme, është e pranuar përgjithësisht që kudo të përdoret krahasimi i rreptë. Konsiderohet se në këtë rast kodi është më pak i ndjeshëm ndaj gabimeve.
Pa ekzekutuar kodin, përcaktoni se çfarë do të shfaqet në ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Pa ekzekutuar kodin, përcaktoni se çfarë do të shfaqet në ekran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Pa ekzekutuar kodin, përcaktoni se çfarë do të shfaqet në ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Pa ekzekutuar kodin, përcaktoni se çfarë do të shfaqet në ekran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Pa ekzekutuar kodin, përcaktoni se çfarë do të shfaqet në ekran:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>