2011-01-20 22 views
16

可能性の重複: What is “:” in PHP?PHPでは「:」とは何を意味していますか?

:は、次のPHPコードは何を意味するのでしょうか?

<?php 
    while (have_posts()) : the_post(); 
?> 
+0

これはいくつかの言語の代替構文は、ハードforeachの –

+3

を見つけるながら場合のように構築されていますが、ここではいくつかの説明:[参考 - このシンボルは、PHPで何を意味するのでしょうか? ](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario

+0

うわー...ありがとうマリオ: –

答えて

30

それはAlternative Syntax For Control Structuresと呼ばれています。それ以降はendwhile;が必要です。基本的には、中括弧{}をしばらく残しておくと、 "きれい"に見えるようになります。

編集の限り、それはTernary Operatorと呼ばれています(3番目のセクションです)。基本的には割り当ての省略形です。

$foo = $first ? $second : $third; 

は(だけ短い)と言うと同じである:

if ($first) { 
    $foo = $second; 
} else { 
    $foo = $third; 
} 
+0

味の物質... – Shikiryu

+0

ありがとう、マクセル! –

+3

@ Shikiryu:私は完全に同意します。私は個人的にそれを気にしません(私はむしろ中括弧を持っています)が、それは完全に有効で使用するのが容認されています(そして多くの人がそれを好む)。 – ircmaxell

-2
while(expression = true) : run some code ; 
+1

ああ?多くの明白なことを述べる? – ircmaxell

+1

明白な質問=明白な答え? –

+2

あなたのコードは間違っています。コロンは1行のループの開始を示していないので、それは代替構文の始まりです。したがって、ループを終了するためのどこかに 'endwhile;'が必要です。だから、あなたはOPが異なる名前で投稿した正確なコードを書き直しただけで、何が起こっているのかの説明になると思いますか? – ircmaxell

8

構文を説明しdocumentation for whileに記載されている例があります:if文と同様

、あなたは中括弧で囲まれたステートメントのグループを囲むことによって、または別の構文を使用してループ中の複数のステートメントをグループ化できます。

while (expr): 
    statement 
    ... 
endwhile; 

答えover hereはこのようにそれを説明する:

この(:)主にPHPとHTMLの埋め込み符号化に使用される演算子。

この演算子を使用すると、中括弧の使用を避けることができます。この演算子は、組み込みコーディングの複雑さを軽減します。場合としているときは、(:)演算子

<body> 
<?php if(true): ?> 
<span>This is just test</span> 
<?php endif; ?> 
</body> 
+0

この質問の最後の部分では、不適切なスタックオーバーフローが発生します。 – Kzqai

+0

おっと、ありがとう... – aioobe

5
で(:)演算子

<body> 
<?php if(true){ ?> 
<span>This is just test</span> 
<?php } ?> 
</body> 

なければ... foreachの多くのために、

をこの(:)演算子を使用することができます

この表記法は、中括弧を使用しないようにするためのものです。通常、HTML内にPHPを組み込む場合は、次のようになります。

while (have_posts()) 
{ 
    the_post(); 
} 
3

have_posts()trueですが、the_post()です。

1
while (expression is true : code is executed if expression is true) 
+0

"文は真"ではありませんか? – DOK

+0

はい、私の瑕疵に気付きました、ごめんなさい、o) – raRaRa

6

それはようなものだ:

<?php 
while(have_posts()) { 
    the_post(); 
} 
?> 
関連する問題