Dwukropek w instrukcji sterującej? Nie wiem jak to nazwać.

0

Mam przykład z książki:

get_header();
?>
<div id="wrapper">
 <div id="content">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <h1><?php the_title(); ?></h1>
<?php if ( !empty( $msg ) ) { ?>
   <div class="message"><?php echo $msg?></div>
<?php } ?>

Nie rozumiem czym jest if ( have_posts() ) : while ( have_posts() ) : the_post();. Pierwszy raz się spotyka z takim zapisem, z dwukropkami, coś jak ala operator trójargumentowy. Jak to się nazywa?

0

Po prostu while nie zostało zamknięte w kolejne tagi <?php ?>

<?php if(true): ?>
  <?php while(true): ?>
    <p>Tekst <?= $tekst ?></p>
  <?php endwhile; ?>
<?php endif; ?>

1

PHP ma wiele przykładów w którym jedną rzecz da się zrobić na kilka sposobów. Jednym z takich przykładów jest redundantna składnia warunków i pęli.

if (true) 
  expression();

to to samo co

if (true): 
  expression(); 
endif;

Podobnie jest z while/endwhile, foreach/endforeach.

To jest po prostu inny zapis dokładnie tego samego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1