Как уже говорилось, вы не хотите узнавать о сокращенном , и принятый ответ дает хороший пример пропуска curly braces
, но есть что добавить. Как видите, в случае if ($x) echo 'foo';
можно опустить curly braces
. В коде нет ничего плохого, нет проблем с производительностью и других проблем, и его могут прочитать другие разработчики. И пример также показывает, что если вы напишите
if ($x)
echo 'foo';
echo 'bar';
вместо
if ($x)
echo 'foo';
echo 'bar';
Вы можете столкнуться с нежелательными результатами, когда напечатано bar
, тогда как вы не хотите, чтобы оно печаталось, и если ваш код полон таких утверждений, тогда вам будет сложнее читать свой собственный код и даже больше другим труднее читать.
Я не хочу узнавать о сокращениях, я просто хочу понять условия, когда и где можно опустить фигурные скобки.
Эти вещи тесно связаны, поэтому, если вы действительно хотите понять, где можно опустить фигурные скобки, то это должно быть обязательным условием, которое вы понимаете или хотя бы знаете о сокращениях, прочитайте
- Структуры управления PHP
- Тернарные условные операторы PHP и выражения в целом
Итак, мой главный вопрос: когда я могу опустить фигурные скобки и в какой структуре / цикле / функции?
Фигурная скобка не требуется, однако, для удобства чтения и обслуживания многие разработчики считают плохим стилем не включать их. Предыдущие 2 ссылки должны предоставить вам информацию, необходимую для принятия собственных решений, когда вы можете опустить фигурную скобку.
например, нет ничего плохого в следующих фрагментах кода, которые все делают одно и то же.
С фигурной скобой
if (PHP_VERSION_ID < 70000)
{
print "PHP >= 7.0 required yours is ";
print phpversion();
print "\n";
exit(1);
}
То же, что и
if (PHP_VERSION_ID < 70000) :
print "PHP >= 7.0 required yours is ";
print phpversion();
print "\n";
exit(1);
endif;
Или вы можете использовать оператор точки
if (PHP_VERSION_ID < 80000)
(print "PHP >= 7.0 required yours is ") . (print phpversion()) . (print "\n") . exit(1);
И вы можете использовать троичный условный оператор и даже опустить if
само по себе, исключая фигурные скобки
(PHP_VERSION_ID > 70000) ?: (print "PHP >= 7.0 required yours is ") . (print phpversion()) . (print "\n") . exit(1);
Так как мы только печатаем, мы можем сократить это и убрать немного print string functions
, которые были здесь, чтобы представлять более одной функции в выражении без фигурных скобок
(PHP_VERSION_ID > 70000) ?: (print "PHP >= 7.0 required yours is " . phpversion() . "\n") . exit(1);
Начиная с php 7 мы можем использовать оператор объединения нулей
(PHP_VERSION_ID > 70000) ?: null ?? (print "PHP >= 7.0 required yours is ".phpversion() . "\n") . exit(1);
Как видно, есть много способов получить точно такой же результат. Это относится не только к этому if
примеру, но и с 1010 *. Так что нет единого ответа на ваш большой вопрос . Следует учитывать в основном следующее.
- Легко ли поддерживать код, который вы пишете.
- Можете ли вы ответить за себя, есть ли что-то, что вы выигрываете, опуская фигурные скобки.