Что это за двоеточие внутри оператора foreach для php? - PullRequest
9 голосов
/ 04 июля 2011

Хорошо, я официально запутался. Я читаю это введение 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 ]

8 голосов
/ 04 июля 2011

Это «Альтернативный синтаксис для управляющих структур» ... см. 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

После того, как вы начнете вкладывать несколько наборов структур, которые заканчиваются на endstructure; вместо фигурных скобок прокомментированные фигурные скобки дают более подробное описание того, какой блок заканчивается. Вы, конечно, можете прокомментировать конечную структуру; Синтаксис, но у вас все еще есть проблема, что многие IDE не смогут соответствовать им за вас.

8 голосов
/ 04 июля 2011

Это означает, что foreach будет продолжаться, пока не достигнет endforeach. Это альтернативный синтаксис {}.

См. http://www.php.net/manual/en/control-structures.foreach.php#82511

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...