私はしばらくの間取り組んできましたPHP
が、今日これを見たとき、それは私にとって新しいものでした:
if(preg_match('/foo.*bar/','foo is a bar')):
echo 'success ';
echo 'foo comes before bar';
endif;
驚いたことに、それもエラーなしで実行されます。誰でも私を啓発できますか?
ありがとうございます :)
私はしばらくの間取り組んできましたPHP
が、今日これを見たとき、それは私にとって新しいものでした:
if(preg_match('/foo.*bar/','foo is a bar')):
echo 'success ';
echo 'foo comes before bar';
endif;
驚いたことに、それもエラーなしで実行されます。誰でも私を啓発できますか?
ありがとうございます :)
これは、制御構造に対する PHP の代替構文です。
あなたのスニペットは以下と同等です:
if(preg_match('/foo.*bar/','foo is a bar')) {
echo 'success ';
echo 'foo comes before bar';
}
一般に:
if(cond):
...
...
endif;
と同じです
if(cond) {
...
...
}
このスタイルの構文は、HTML に埋め込む場合、特にテンプレート/表示ロジックでよく使用されます。このように埋め込むと、中かっこの構文よりも少し読みやすくなります。
<div>
<? if ($condition): ?>
<ul>
<? foreach($foo as $bar): ?>
<li><?= $bar ?></li>
<? endforeach ?>
</ul>
<? endif ?>
</div>
対:
<div>
<? if ($condition) { ?>
<ul>
<? foreach($foo as $bar) { ?>
<li><?= $bar ?></li>
<? } ?>
</ul>
<? } ?>
詳細な終了タグを使用すると、ネストされたコード ブロックを追跡するのが少し簡単になりますが、それでもほとんどは個人的な好みです。
http://php.net/manual/en/control-structures.alternative-syntax.php
、if
、for
、while
、foreach
および で機能しswitch
ます。PHP と HTML を混在させるには非常に便利です。
これについては、PHP マニュアルの制御構造の代替構文を参照してください。再フォーマットすると、投稿したコードは次のようになります。
if (preg_match('/foo.*bar/','foo is a bar')):
echo 'success ';
echo 'foo comes before bar';
endif;
このコードは次と同等です。
if (preg_match('/foo.*bar/','foo is a bar')) {
echo 'success ';
echo 'foo comes before bar';
}
この構文は、他のいくつかの制御構造でも使用できます。
if ( condition ):
// your if code
elseif ( other_condition ):
// optional elseif code
else:
// optional else code
endif;
while ( condition ):
// your while code
endwhile;
for ( condition ):
// your for code
endfor;
foreach ( condition ):
// your foreach code
endforeach;
switch ( condition ):
// your switch code
endswitch;
これは次と同等です:
if(preg_match('/foo.*bar/','foo is a bar')):
echo 'success ';
echo 'foo comes before bar';
endif;
これは次と同等です:
if(preg_match('/foo.*bar/','foo is a bar')){
echo 'success ';
echo 'foo comes before bar';
}
非標準の条件付き構文をサポートするという知恵には、明らかに疑問があります。