2012-05-06 5 views
2

":"と "end-stuff"の構文を使いたいです。私はIDEを知っ":"を使用したPHP構文ですか、それとも使用しないのですか?

if($var=='patate'): 
    echo 'excellent'; 
else : 
    ... 
endif; 

は、それがコードを折りたたむする時が来た{}構文に使用されているが、それ以外に、これを使用しないように何らかの理由がある「:」構文は?

+3

これは前に質問されていますが、私はリンク先の複製を見つけることができますが、基本的には、ほとんどのプロジェクトのコーディング標準で適切な '{}'構文を使用しています。短い構文は、HTMLの中にたくさんのPHPが埋め込まれている場合、テンプレートファイルで使用するように設計されています。 –

+0

[制御構造の代替構文](http://www.php.net/manual/en/control-structures.alternative-syntax.php)に関するユーザーのコメントは、あなたにいくつかの考えを与えるかもしれません。 –

答えて

4

使用しないでください。それは醜いですし、人々は通常、彼らが慣れている中括弧の構文を期待しています。 PHPとHTMLを同じファイル(つまり、PHPをテンプレートエンジンとして使用する場合)に混在させるときに最も一般的ですが、とにかく、同じファイルにもアプリケーションロジックが含まれているとは限りません。

自動インデントスクリプトでは、普通はちょうどの中かっこ1つ/それ以上のインデントのレベルを知っているので、コードを正しくインデントするのに問題があります。

:の代わりに{の代わりにpythonをご覧ください。 :)

1

PHPやHTMLブロックを混在させたくない場合は、別の構文を使用することがあります。

<?php if ($something): ?> 
<h2>blah blah blah</h2> 
<?php endif; ?> 

しかし、あなたはまともな構文の強調表示エディタを使用している場合、カラー化はあなたがPHP何にとして必要なすべてのコンテキストのヒントを与えるだろうし、HTMLは何として、それを使用してもポイントはかなりありません。また、ブラケット/ブレースで "バウンス"させるVIMのようなエディタは、必要性を否定します。あなたは 'endif'でバウンスできません。

+0

上記の例で '{}'を使用すると、はるかに便利で、短く、読みやすくなります。 –

+0

古いコードベースとの互換性があります。私は{}しか新しいもので使われるべきではないことに同意します。代わりの構文はmagic_quotesとregister_globalsを使ってPHPから削除する必要のあるものにランク付けしました(そしてありがたいことに、5.4はマジック引用と登録グローバルでうまくいきました)。 –

+0

少しの研究の後で、私は心配していないと思う。 –

0

人々が代替構文を使用しない主な理由は、一部のサーバー構成では許可されないことがあるためです。サーバー環境を管理していない場合や、他のユーザーとコードを共有する必要がある場合は、代わりの構文を使用しないことをお勧めします。

関連する問題