PHP'деги логикалык маанилерди катуу эмес салыштыруу
Алдынкы мисалда мен салыштыруу үчүн
=== операторун колдондум. Бул учурда биздин өзгөрмөбүз
true маанисине барабардыгы боюнча
мааниси жана тиби боюнча салыштырылды.
Биздин маселебизде == операторун да
колдоно алабыз. Эгерде test өзгөрмөсүндө
ар дайым true же false
маанилеринин бири болсо, анда эч нерсе өзгөрбөйт:
<?php
$test = true; // бул жерде true же false жазабыз
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Бирок эгерде $test өзгөрмөсүнө
ар кандай маанилер түшүүсү мүмкүн болсо, анда баары
бир топ татаалыраак болуп калат. Мындай учурда, эгер өзгөрмөдө
логикалык эмес маани болсо, анда ал маани
алгач логикалык мааниге айлантылып, андан кийин гана
салыштырылат.
Мисалы, биздин өзгөрмөбүздө
1 саны болсун. Бул учурда ал алгач
логикалык типке, башкача айтканда
true маанисине айланат. Андан кийин салыштыруу аткарылат:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // бул иштейт, анткени 1 == true - туура
} else {
echo '---';
}
?>
Бирок, мисалы, 0 саны
false маанисине айланат. Жана биздин шартыбыз натыйжада
жалган болот:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // бул иштейт, анткени 0 == true - туура ЭМЕС
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Кодду иштетпей, экранга эмне чыгарыларын аныктаңыз:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>