PHP nosacījumos neobligāto cirtaino iekavu problēma
Pat ja PHP pieļauj iepriekš parādītos saīsinājumus ar cirtainajām iekavām, es kopumā to neiesaku darīt, jo tas ir grūti pamanāmu kļūdu avots.
Pieņemsim, ka, piemēram, ir šāds kods:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Pieņemsim, ka tagad mēs nolēmām, ja
nosacījums ir izpildīts, izdarīt arī otro
echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Tomēr bez cirtainajām iekavām nosacījuma iekšā atrodas tikai pirmā izvade, tas ir, pirmā izvade tiks izpildīta, ja nosacījums ir patiess, bet otrā - vienmēr.
Faktiski mūsu kods ir līdzvērtīgs šādam:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // šī rinda izrādījās ārpus nosacījuma
?>
Bet mēs gribētu šādu kodu:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // šī rinda ir nosacījuma iekšpusē
}
?>
Tieši tāpēc ieteicams vienmēr izveidot cirtaino iekavu komplektu, lai neiekļūtos šāda veida kļūdās.
Nelaižot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Nelaižot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Nelaižot kodu, nosakiet, kas tiks izvadīts uz ekrāna:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>