Как уже было сказано, вы не хотите изучать стенографию, и принятый ответ дает хороший пример опускания curly braces
, но есть что добавить. Как видите, можно опустить curly braces
в случае if ($x) echo 'foo';
. В коде нет ничего плохого, нет проблем с производительностью или другими проблемами, и он доступен для чтения другим разработчикам. Пример также показывает, что если вы напишете
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 мы можем использовать оператор объединения Null
(PHP_VERSION_ID > 70000) ?: null ?? (print "PHP >= 7.0 required yours is ".phpversion() . "\n") . exit(1);
Как видите, есть много способов получить точно такой же результат. Это применимо не только к этому if
примеру, но то же самое можно применить и к structure/loop/function
. Так что на ваш большой вопрос нет однозначного ответа. В основном следует учитывать следующее.
- Легко ли поддерживать код, который вы пишете?
- Можете ли вы ответить за себя, есть ли что-то, что вы выиграете, опустив фигурные скобки?
person
mkungla
schedule
25.01.2016
struct
иclass
в C и C ++. - person Eric   schedule 04.01.2012