НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗ppPmCdBOP 93 of 447 menu

Проблема необязательности фигурных скобок в условиях в PHP

Не смотря на то, что PHP допускает показанные выше сокращения с фигурными скобками, я в общем-то не рекомендую так делать, так как это рассадник трудноуловимых ошибок.

Пусть к примеру есть следующий код:

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

Пусть теперь мы решили в том случае, если условие выполняется, сделать еще и второе echo:

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

Однако, без фигурных скобок внутри условия находится только первый вывод, то есть первый вывод будет срабатывать при верном условии, а второй - всегда.

Фактически наш код эквивалентен такому:

<?php $test = 3; if ($test > 0) { echo $test; } echo '+++'; // эта строка оказалась снаружи условия ?>

А мы бы хотели такой код:

<?php $test = 3; if ($test > 0) { echo $test; echo '+++'; // эта строка внутри условия } ?>

Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки.

Не запуская код, определите, что выведется на экран:

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

Не запуская код, определите, что выведется на экран:

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

Не запуская код, определите, что выведется на экран:

<?php $num = 0; if ($num === 5) echo $num; echo '---'; echo '+++'; ?>
Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить