por fim, em loops?

Eu uso suportes ao usar loops foreach. Qual é o objective final?

É principalmente para que você possa tornar as declarações de início e término mais claras ao criar HTML em loops:

 < ? while ($record = mysql_fetch_assoc($rs)): ?> < ? if (!$record['deleted']): ?>  < ? foreach ($display_fields as $field): ?>  < ? endforeach; ?>  < ? else: ?>  < ? endif; ?> < ? endwhile; ?> 
< ?= $record[$field] ?>
record < ?= $record['id'] ?> has been deleted

versus

  < ? while ($record = mysql_fetch_assoc($rs)) { ?> < ? if (!$record['deleted']) { ?>  < ? foreach ($display_fields as $field) { ?>  < ? } ?>  < ? } else { ?>  < ? } ?> < ? } ?> 
< ?= $record[$field] ?>
record < ?= $record['id'] ?> has been deleted

Espero que meu exemplo seja suficiente para demonstrar que, uma vez que você tenha várias camadas de loops nesteds, e o recuo é descartado por todas as tags abertas / fechadas do PHP e o HTML contido (e talvez você tenha que recuar o HTML uma certa maneira de obter o seu página do jeito que quiser), a forma de syntax alternativa ( endforeach ) pode tornar as coisas mais fáceis para o seu cérebro analisar. Com o estilo normal, o fechamento pode ser deixado sozinho e dificil dizer o que eles realmente estão fechando.

É a declaração final da syntax alternativa :

 foreach ($foo as $bar) : ... endforeach; 

Útil para tornar o código mais legível se você estiver saindo do PHP:

 < ?php foreach ($foo as $bar) : ?> 
...
< ?php endforeach; ?>

Como uma syntax alternativa, você pode escrever loops foreach assim

 foreach($arr as $item): //do stuff endforeach; 

Este tipo de syntax geralmente é usado quando o php está sendo usado como um idioma de modelo como tal

 < ?php foreach($arr as $item):?>  < ?php endforeach; ?> 

É apenas uma syntax diferente. Ao invés de

 foreach ($a as $v) { # ... } 

Você poderia escrever isso:

 foreach ($a as $v): # ... endforeach; 

Eles funcionarão exatamente o mesmo; É apenas uma questão de estilo. (Pessoalmente, nunca vi ninguém usar o segundo formulário.)

Que tal agora?

 
    < ?php while ($items = array_pop($lists)) { ?>
    < ?php foreach ($items as $item) { ?>
  • < ?= $item ?>
  • < ?php }//foreach }//while ?>

Nós ainda podemos usar as chaves mais amplamente utilizadas e, ao mesmo tempo, aumentar a legibilidade.

Usando foreach:endforeach; não só torna as coisas legíveis, mas também faz o mínimo de carga para a memory, como introduzido no PHP docs. Assim, para grandes aplicativos, recebendo muitos usuários, esta seria a melhor solução

Que tal isso?

 < ?php while($items = array_pop($lists)){ echo "
    "; foreach($items as $item){ echo "
  • $item
  • "; } echo ""; } ?>