მნიშვნელობითი და ტიპის ტოლობა PHP-ში
დავუშვათ, გსურთ შედარება ისე, რომ ბრჭყალებში
მოთავსებული რიცხვი არ იყოს ტოლი იმავე რიცხვის
ბრჭყალების გარეშე. სხვა სიტყვებით რომ ვთქვათ, გსურთ
შედარება ისე, რომ შედარება მოხდეს არა მხოლოდ
მნიშვნელობით, არამედ მონაცემთა ტიპითაც. ამისთვის
ოპერატორი == უნდა შეიცვალოს ოპერატორით
===. შედარებას ასეთ ოპერატორთან
ეწოდება მკაცრი.
ნახეთ მაგალითი:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // იმუშავებს ამას, რადგან მნიშვნელობები არ არის ტოლი ტიპის მიხედვით
}
?>
მაგრამ ორი სტრიქონის '3' შედარებისას
ეკრანზე გამოჩნდება '+++':
<?php
if ('3' === '3') {
echo '+++'; // იმუშავებს ამას
} else {
echo '---';
}
?>
ასევე, როგორც რიცხვების შედარებისას:
<?php
if (3 === 3) {
echo '+++'; // იმუშავებს ამას
} else {
echo '---';
}
?>
განსხვავება ორ ოპერატორს შორის ვლინდება ზუსტად მაშინ, როდესაც მნიშვნელობები ერთნაირია, მაგრამ განსხვავდება მონაცემთა ტიპი. დანარჩენ შემთხვევებში ეს ოპერატორები მუშაობენ ერთნაირად. მაგალითად, სხვადასხვა რიცხვების შედარებისას, რა თქმა უნდა, გამოიჩნდება მინუსი:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // იმუშავებს ამას
}
?>
დღესდღეობით PHP-ში საყოველთაოდ მიღებულია ყველგან მკაცრი შედარების გამოყენება. ითვლება, რომ ამ შემთხვევაში კოდი ნაკლებად მიდრეკილია შეცდომებისკენ.
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიჩნდება ეკრანზე:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიჩნდება ეკრანზე:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიჩნდება ეკრანზე:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიჩნდება ეკრანზე:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიჩნდება ეკრანზე:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>