Egalitatea după valoare și tip în PHP
Să presupunem că doriți să comparați astfel încât numărul
în ghilimele să nu fie egal cu același număr
fără ghilimele. Cu alte cuvinte, doriți
să comparați astfel încât comparația să fie nu numai
după valoare, ci și după tipul de date. Pentru aceasta
în loc de operatorul == ar trebui să folosiți
operatorul ===. Comparația cu un astfel de operator
se numește strictă.
Vedeți exemplul:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // va funcționa acesta, deoarece valorile nu sunt egale după tip
}
?>
Însă la compararea a două șiruri '3'
pe ecran se va afișa '+++':
<?php
if ('3' === '3') {
echo '+++'; // va funcționa acesta
} else {
echo '---';
}
?>
La fel, ca și la compararea numerelor:
<?php
if (3 === 3) {
echo '+++'; // va funcționa acesta
} else {
echo '---';
}
?>
Diferența dintre cei doi operatori se manifestă fix atunci când valorile sunt identice, dar tipul de date este diferit. În restul cazurilor acești operatori funcționează la fel. De exemplu, la compararea numerelor diferite, bineînțeles, se va afișa minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // va funcționa acesta
}
?>
În prezent, în PHP este general acceptat să se folosească peste tot comparația strictă. Se consideră că în acest caz codul este mai puțin predispus la erori.
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 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>