時々見かけるのですが、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で質問しましょう!
似たような質問が見つかりました
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPで偶数と奇数を判断するには
-
includeしたファイルに変数を持...
-
関数の前にアットマークが付く場合
-
PHPからExcelVBAを制御できます...
-
PHPの複数関数非同期実行方法を...
-
PHPの変わった閉じタグの必要性...
-
PHP内、ボタン押下と同時にリロ...
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
CSV出力にHTMLが入ってしまう
-
「クラス関数」「メンバ関数」...
-
index.phpって何ですか? 具体...
-
現在位置より2つ上のディレク...
-
透過PNGが透過されない!!
-
PHP 文字列を代入した配列を変...
-
$_SESSION 有効期限をブラウザ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
インスタンス化に伴うメモリ消...
-
PHPで文字列(日本語)の比較
-
PHPExcel処理速度が遅い
-
phpの処理中に画面表示ををする...
-
PHP内、ボタン押下と同時にリロ...
-
PHPで偶数と奇数を判断するには
-
文字列の10+10を20と表示したい
-
Cronで同じ処理を複数同時に実...
-
関数の前にアットマークが付く場合
-
入れ子になっているHTMLタグも...
-
◆バックエンド処理の終了を知り...
-
phpからjavascriptの関数呼び出し
-
条件分岐 if(elseif) switchの...
-
VBAからPHPを実行(キック)したい
-
3の倍数の和
-
includeしたファイルに変数を持...
-
アクセスクライアントごとにタ...
-
チェックボックスをビット演算...
おすすめ情報