Возможный дубликат: что такое «:» в PHP?
Что означает :
означает в следующем PHP-коде?
<?php while (have_posts()) : the_post(); ?>
Это называется альтернативным синтаксисом для управляющих структур . Вы должны иметь endwhile;
где-то после этого. В принципе, он позволяет вам временно опустить фигурные скобки {}
, чтобы он выглядел «красивее» …
Что касается вашего редактирования, он называется Тернарный оператор (это третий раздел). В основном это сокращенное присвоение.
$foo = $first ? $second : $third;
это то же самое, что сказать (просто короче):
if ($first) { $foo = $second; } else { $foo = $third; }
В документации приведен пример, который объясняет синтаксис:
Как и в случае оператора if, вы можете группировать несколько операторов внутри одного цикла while, окружая группу операторов с фигурными фигурными скобками или используя альтернативный синтаксис:
while (expr): statement ... endwhile;
Ответ здесь объясняет это следующим образом:
Этот (:) оператор в основном используется во встроенном кодировании php и html.
Используя этот оператор, вы можете избежать использования фигурных скобок. Этот оператор снижает сложность встроенного кодирования. Вы можете использовать этот оператор (:) с if, while, for, foreach и т. Д. …
Без оператора (:)
<body> <?php if(true){ ?> <span>This is just test</span> <?php } ?> </body>
С оператором (:)
<body> <?php if(true): ?> <span>This is just test</span> <?php endif; ?> </body>
это как:
<?php while(have_posts()) { the_post(); } ?>
Эта нотация заключается в том, чтобы избежать использования фигурных скобок – как правило, при вложении PHP в HTML – и эквивалентно:
while (have_posts()) { the_post(); }
Он говорит, что have_posts()
true
работает the_post()
.
while (expression is true : code is executed if expression is true)
while(expression = true) : run some code ;