時々見かけるのですが、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】URLがドメイン名...
-
ユニークIDを連番にする
-
APIで出てきたXMLをPHPで表示さ...
-
PHPが処理を途中でやめる。原因...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
CSV出力にHTMLが入ってしまう
-
3つ以上の論理積は利用可能なの...
-
<A href ~ と一緒に値を渡すには
-
form actionで二つ送信先を指定...
-
FTPコマンドでディレクトリごと...
-
別ファイルの変数を呼び出した...
-
セッションファイルの場所
-
【file_exists】ファイルが存在...
-
トランザクションが原因?DBに...
-
バッチを用いたフォルダの自動移動
-
.phpと.incファイルの違いはな...
-
HPを開くとダウンロードページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
インスタンス化に伴うメモリ消...
-
3の倍数の和
-
phpの処理中に画面表示ををする...
-
Smartyにて、文字検索
-
VBAからPHPを実行(キック)したい
-
PHPで偶数と奇数を判断するには
-
Cronで同じ処理を複数同時に実...
-
PHPExcel処理速度が遅い
-
PHP内、ボタン押下と同時にリロ...
-
タイムアウト処理?となる
-
DBへの書き込みとメール送信を...
-
プログラム内で処理中断後も継...
-
関数の前にアットマークが付く場合
-
PHPによるSQL文の中にPHP処理を...
-
アクセスクライアントごとにタ...
-
PHPが処理を途中でやめる。原因...
-
リンクのラベルを取得したい
-
PHP postgres でロールバック...
-
phpからjavascriptの関数呼び出し
おすすめ情報