⊗ppPmCdBOP 93 of 447 menu

Problém nepovinnosti složených závorek v podmínkách v PHP

Přestože PHP umožňuje výše uvedená zkrácení se složenými závorkami, já je obecně nedoporučuji, protože jsou živnou půdou pro těžko postižitelné chyby.

Předpokládejme například následující kód:

<?php $test = 3; if ($test > 0) echo $test; ?>

Předpokládejme nyní, že jsme se rozhodli v případě, že je podmínka splněna, provést také druhý echo:

<?php $test = 3; if ($test > 0) echo $test; echo '+++'; ?>

Avšak bez složených závorek je uvnitř podmínky pouze první výpis, to znamená, že první výpis se spustí při splněné podmínce, a druhý - vždy.

Náš kód je ve skutečnosti ekvivalentní tomuto:

<?php $test = 3; if ($test > 0) { echo $test; } echo '+++'; // tento řádek se ocitl mimo podmínku ?>

Ale my bychom chtěli takový kód:

<?php $test = 3; if ($test > 0) { echo $test; echo '+++'; // tento řádek je uvnitř podmínky } ?>

Právě proto se doporučuje vždy provádět umístění složených závorek, abyste neupadli do chyb tohoto druhu.

Bez spuštění kódu určete, co se vypíše na obrazovku:

<?php $num = 5; if ($num === 5) echo $num; echo '+++'; ?>

Bez spuštění kódu určete, co se vypíše na obrazovku:

<?php $num = 0; if ($num === 5) echo $num; echo '+++'; ?>

Bez spuštění kódu určete, co se vypíše na obrazovku:

<?php $num = 0; if ($num === 5) echo $num; echo '---'; echo '+++'; ?>
dahuuzcfren