Inegalitate după valoare și tip în PHP
Pe lângă operatorul != există și
operatorul !==, care ține cont de tip la
comparare. Să analizăm diferențele dintre
ele cu exemple.
Să presupunem că cu operatorul != se compară
două numere 3. Acest operator compară
valorile verificând dacă ele NU sunt egale. Deoarece
valorile noastre sunt egale, pe ecran
se va afișa '-':
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // se va executa acest lucru, deoarece valorile sunt egale
}
?>
Să presupunem acum că una dintre valorile noastre este
în ghilimele. În acest caz, operatorul !=
le va considera tot egale (deoarece valorile coincid,
iar tipul nu este important pentru acest operator)
și va afișa din nou '-':
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // se va executa acest lucru, deoarece valorile sunt egale
}
?>
Să comparăm acum două numere 3
cu operatorul !==. Acesta le va
considera tot egale și va afișa '-':
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // se va executa acest lucru, deoarece valorile sunt egale
}
?>
Dar dacă luăm acum una dintre triple în ghilimele,
atunci operatorul !== le va considera pe cele două triple
inegale, deoarece, deși valorile lor coincid,
tipurile lor sunt diferite:
<?php
if ('3' !== 3) {
echo '+++'; // se va executa acest lucru, deoarece valorile NU sunt egale
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>