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

Dwukropek w instrukcji sterującej? Nie wiem jak to nazwać.
TH
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Globalna Wioska
  • Postów: 54
0

Mam przykład z książki:

Kopiuj
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?

66
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 53
0

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

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

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
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.

Kopiuj
if (true) 
  expression();

to to samo co

Kopiuj
if (true): 
  expression(); 
endif;

Podobnie jest z while/endwhile, foreach/endforeach.

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.