
時々見かけるのですが、PHPのソースに変わった形式で閉じタグが書かれている記載を散見いたします。
具体的にですが、以下のような形で書かれています。
<?php if(hoge1 === hoge2) {?>
処理
<?php }else if(hoge3 === hoge4){ ?>
処理
<?php }else if(hoge5 === hoge6){ ?>
処理
…
…
何でこのような書き方を行うのでしょうか?
処理の部分に他のPHPのタグがあるため回避しているのでしょうか?
閉じ分部の、{?> が特に気になるといいますか、気持ち悪いといいますか…。
ただ、この形で書かなければならない場合があると思うのですが、この書き方のルールが良くわかりません。
最後を {?> にしたり次の開始タグの<?php } で書く意味を教えて頂けないでしょうか?
コロンで書く、
<?php else: ?>
…
<?php endif; ?>
などはわかりやすいのですが…。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
その「処理」の部分は、「PHP」ではなく「HTML」になっているはずです。
PHPスクリプトの見た目は、HTMLの中に<?PHP 〜 ?>でPHPが書かれている構造になっていますが、
PHP側から見ると、PHPの中に ?> 〜 <?PHP でHTMLが書かれている構造になっています。
そして、 ?> 〜 <?PHP は echo '〜' ; とほぼ同じです。
質問にあるプログラムは
if(hoge1 === hoge2) {
?> HTML<?php
} else if(hoge3 === hoge4){
?>HTML<?php
} else if(hoge5 === hoge6){
?> HTML
…
であり
if(hoge1 === hoge2) {
echo 'HTML';
} else if(hoge3 === hoge4){
echo 'HTML';
} else if(hoge5 === hoge6){
echo 'HTML';
…
になります。こう書けば、{} が必要な理由はわかるでしょう。
○ echoを使わない理由
echo '〜' だと、PHPの文字列の文法に縛られる。引用符とかエスケープシーケンスとかを考慮しなければならないことがある。
対して、 ?>〜<?PHP だと 〜 の部分は純粋にHTMLなので、PHPの文法には縛られない。
長かったりPHPでの特殊文字が多い場合は、HTMLで書いた方が楽。
○:を使った文法を使わない理由
・案外知られていない
・{} を使った構文の中で、キーワードを使った構文が異質に見える
有難うございます。
確かにHTMLの記述があります、これらを書きやすくするための記法だったのですね。ただ、使い慣れないと何だか違和感があります…。
自分でも使ってみて慣れていこうと思います。
有難うございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPExcel処理速度が遅い
-
PHPの複数関数非同期実行方法を...
-
phpの処理中に画面表示ををする...
-
VBAからPHPを実行(キック)したい
-
ボタンのクリック数を合計保存...
-
Subversionのリポジトリの削除
-
SendMailがエラーを返さない
-
.phpファイルが、表示されない
-
PHPでメールを受信するには?
-
PHPSpreadsheetによる書き出し...
-
FTPコマンドでディレクトリごと...
-
SQLiteに画像を格納したい
-
別ファイルの変数を呼び出した...
-
リンク先を隠す方法はないでし...
-
ビットマップ画像を読み込むプ...
-
inputタグでphpを呼び出す際、...
-
CFileDialogの最初のディレクト...
-
php,mysqlにて画像パス保存/表...
-
ラッパークラスって何ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
phpの処理中に画面表示ををする...
-
携帯電話用Webページの自動更新...
-
PHPが処理を途中でやめる。原因...
-
PHP内、ボタン押下と同時にリロ...
-
1つのPHPファイルに何度も同じ...
-
変数の範囲によって場合わけし...
-
phpからjavascriptの関数呼び出し
-
PHPのコード内でjavascriptを使...
-
Cronで同じ処理を複数同時に実...
-
VBAからPHPを実行(キック)したい
-
Smartyにて、文字検索
-
c言語 fopen
-
PHPで文字列の検索
-
質問させてください。
-
アドレスに[?****]と入れると、...
-
PHPでCGIの処理結果を使うには?
-
PHPの変わった閉じタグの必要性...
-
ブラウザから非同期プログラム...
-
SJISでPHP5+POSTGRESQL8
おすすめ情報