Nie-strikte vergelyking van logiese waardes in PHP
In die vorige voorbeeld het ek die vergelykingsoperateur
=== gebruik. In daardie geval word ons veranderlike
vergelyk met gelykheid aan true
soos volgens waarde, sowel as volgens tipe.
In ons probleem kan ons ook die operateur
== gebruik. As die veranderlike test
altyd een van die waardes true
of false sal wees, sal niks verander nie:
<?php
$test = true; // skryf hier of true, of false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Maar as enige waardes in die veranderlike
$test kan beland, raak alles
baie meer ingewikkeld. In so 'n geval, as die veranderlike
nie 'n Booleaanse waarde sal hê nie, sal daardie waarde
eers na Booleaans omgeskakel word en slegs
daarna sal dit vergelyk word.
Laat ons byvoorbeeld sê die veranderlike sal die
getal 1 bevat. In hierdie geval sal dit eers
na die logiese tipe omgeskakel word, dit wil sê
na true. En dan sal die vergelyking uitgevoer word:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // dit sal werk, want 1 == true - dit is korrek
} else {
echo '---';
}
?>
Maar byvoorbeeld, die getal 0 sal omgeskakel word
na false. En ons voorwaarde sal as gevolg
vals wees:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // dit sal werk, want 0 == true - dit is NIE korrek nie
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sonder om die kode te begin, bepaal wat op die skerm vertoon sal word:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>