Eventuali duplicati: What is “:” in PHP?Cosa significa ":" in PHP?
Cosa significa il :
significa nel seguente codice PHP?
<?php
while (have_posts()) : the_post();
?>
Eventuali duplicati: What is “:” in PHP?Cosa significa ":" in PHP?
Cosa significa il :
significa nel seguente codice PHP?
<?php
while (have_posts()) : the_post();
?>
Si chiama Alternative Syntax For Control Structures. Dovresti avere un endwhile;
da qualche parte. Fondamentalmente, consente di omettere le parentesi graffe {}
da un momento all'altro per renderlo più "carino" ...
Per quanto riguarda la modifica, si chiama Ternary Operator (è la terza sezione). Fondamentalmente si tratta di una stenografia di assegnazione.
$foo = $first ? $second : $third;
è lo stesso che dire (solo più breve):
if ($first) {
$foo = $second;
} else {
$foo = $third;
}
while(expression = true) : run some code ;
Eh? Dichiarare l'ovvio molto? – ircmaxell
domande ovvie = risposte ovvie? –
Ma il tuo codice è sbagliato, poiché i due punti non indicano l'inizio di un loop di una singola riga, è l'inizio della sintassi alternativa, quindi avrai bisogno di un 'endwhile ;, da qualche parte per terminare il ciclo. Quindi hai appena rideterminato il codice esatto che l'OP ha pubblicato con nomi diversi e ti aspetti che sia una spiegazione di cosa sta succedendo? – ircmaxell
c'è un esempio elencato nella documentation for while
che spiega la sintassi:
Come con l'istruzione if, si può raggruppare più istruzioni all'interno dello stesso ciclo while circondando un gruppo di istruzioni con parentesi graffe o utilizzando la sintassi alternativa:
while (expr): statement ... endwhile;
Una risposta over here spiega in questo modo:
Questo (:) operatore in gran parte utilizzato nella codifica integrata di PHP e HTML.
Utilizzando questo operatore è possibile evitare l'uso di parentesi graffa. Questo operatore riduce la complessità nella codifica incorporata. È possibile utilizzare questo (:) all'operatore se, while, for, foreach e molto altro ancora ...
Senza (:) operatore
<body> <?php if(true){ ?> <span>This is just test</span> <?php } ?> </body>
Con (:) operatore
<body> <?php if(true): ?> <span>This is just test</span> <?php endif; ?> </body>
Questa notazione serve a evitare l'uso di parentesi graffe, generalmente quando si incorpora PHP in HTML, ed è equivalente a:
while (have_posts())
{
the_post();
}
Sta dicendo che have_posts()
è true
eseguito the_post()
.
è come:
<?php
while(have_posts()) {
the_post();
}
?>
questa è la sintassi alternativa di qualche lingua costruire come se mentre foreach –
Difficile da trovare, ma alcune spiegazioni qui: [Riferimento - Che cosa significa questo simbolo significa in PHP? ] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario
Wow ... grazie Mario :) –