Что это за двоеточие внутри инструкции foreach для php?
Ладно, я официально в замешательстве. Я читаю это вступление MVC на php и вижу этот код, и я добавил некоторые элементы в массив сверху, чтобы посмотреть, действительно ли это работает.
<?php
$members = array('apple', 'oranges', 'banana');
?>
<html>
<h1>Members of community.com:</h1>
<ul>
<?php foreach ($members as $i => $member) : ?>
<li>Member #<?php echo $i + 1; ?>: <?php echo $member; ?></li>
<?php endforeach; ?>
</ul>
</html>
Я заметил, что в строке оператора foreach есть:. Откуда это взялось? Что еще более важно, что это такое? Это: символ означает "хорошо, мы продолжим это утверждение в следующей строке"?
Но кроме того, это классный трюк, которому я научился. Меньше html-тегов внутри моего php-эха я догадываться.
Дайте мне знать, что вы думаете, спасибо!
2 answers
Это "Альтернативный синтаксис для управляющих структур"... см. http://ru2.php.net/manual/en/control-structures.alternative-syntax.php и http://www.php.net/manual/en/control-structures.foreach.php#82511.
Он в основном используется в коде представления, на который могут обратить внимание дизайнеры, потому что считается, что его легче понять непрограммистам. Я настоятельно рекомендую не использовать его, так как он действительно ничего не предлагает по сравнению с прокомментированным набором фигурных скобок и множеством IDE не играй с этим по-хорошему. Если ваш код может когда-либо понадобиться для просмотра другими, лучше всего писать код без использования альтернативного синтаксиса.
foreach ($setOfItems as $item):
//do something
endforeach;
Лучше представить как...
foreach ($setOfItems as $item) {
//do something
} // end ($setOfItems as $item) foreach
После того, как вы начнете вложивать структуры нескольких наборов, которые заканчиваются конечной структурой; вместо фигурной скобки затем прокомментированные фигурные скобки дают более подробное описание того, какой блок завершается. Вы, конечно, можете прокомментировать конечную структуру; синтаксис, но у вас все еще есть проблема, с которой многие IDE не смогут соответствовать они для тебя.
Это означает, что foreach
будет продолжаться до тех пор, пока не достигнет endforeach
. Это альтернативный синтаксис для {}
.
См. http://www.php.net/manual/en/control-structures.foreach.php#82511