PHPは、動的なウェブサイトを構築するためのサーバーサイド・スクリプト言語として、2026年現在も圧倒的なシェアを誇っています。

PHPを記述する際に避けて通れないのが、プログラムの開始と終了を明示するための「PHPタグ」です。

基本的な文法でありながら、記述方法やルールの違いによって、意図しないエラーやセキュリティリスクを招くことも少なくありません。

本記事では、PHPタグの最新の書き方や使い分けのルール、エラーを未然に防ぐためのポイントについて詳しく解説します。

PHPタグの基本と標準的な書き方

PHPのコードを記述する際、最も標準的で推奨されるのが「標準タグ」と呼ばれる形式です。

このセクションでは、基本的な記述方法と、現代のPHP開発において守るべきルールについて見ていきましょう。

標準的なPHPタグ(<?php … ?>)の役割

PHPスクリプトを記述する場合、原則として<?phpで書き始め、?>で閉じるのが基本です。

このタグで囲まれた部分がPHPエンジンによって解釈され、プログラムとして実行されます。

PHP
<?php
// ここにPHPのコードを記述します
echo "PHPの世界へようこそ";
?>
実行結果
PHPの世界へようこそ

この書き方は、PHPのバージョンを問わず、またサーバーの設定に依存せずに動作するため、最も汎用性が高い方法です。

終了タグの省略とそのメリット

PHPのみで構成されるファイル(クラス定義や関数ライブラリなど)では、ファイルの末尾にある終了タグ(?>)を省略することが推奨されています。

これは、終了タグの後に意図しない改行や半角スペースが含まれてしまうのを防ぐためです。

もし終了タグの後に余計な空白が含まれていると、HTTPヘッダーの送信後にデータが出力されてしまい、「Cannot modify header information – headers already sent」というエラーの原因になります。

PHP
<?php
// 終了タグを省略した例
class UserHandler {
    public function getName() {
        return "Taro";
    }
}
// ここでファイルを終了し、?> は書かない

現代のコーディング規約であるPSR-12などでも、純粋なPHPファイルでの終了タグ省略は必須ルールとされています。

短縮二重引用符タグ(<?= … ?>)の活用

HTMLの中に短いPHPの値を埋め込む際、非常に便利なのが「短縮echoタグ」です。

このタグは、値を画面に出力する際に特化した書き方であり、記述を簡潔にすることができます。

短縮echoタグの書き方とメリット

通常、変数を出力する場合は<?php echo $variable; ?>と記述しますが、これを<?= $variable ?>と短縮できます。

テンプレートファイルなどで多くの変数を表示する場合、コードの見通しが非常に良くなります。

PHP
<!-- 標準タグでの記述 -->
<p><?php echo $userName; ?>さん、こんにちは。</p>

<!-- 短縮echoタグでの記述 -->
<p><?= $userName ?>さん、こんにちは。</p>

以前の古いPHPでは、サーバーの設定(php.ini)によってはこのタグが使えないこともありましたが、PHP 5.4以降、このタグは常に有効化されており、安全に使用することが可能です。

短縮echoタグを使用する際の注意点

便利ではありますが、「出力専用」であるという点を忘れてはいけません。

タグの中で条件分岐やループ処理を行うことはできないため、ロジックが含まれる場合は標準タグを使用します。

また、セキュリティの観点から、ユーザーが入力した値を表示する際は必ずエスケープ処理を組み合わせるようにしましょう。

PHP
<!-- 安全な出力例 -->
<input type="text" value="<?= htmlspecialchars($inputValue, ENT_QUOTES, 'UTF-8') ?>">

使用を避けるべき古いPHPタグ

PHPの長い歴史の中では、現在では非推奨、あるいは廃止されたタグの書き方が存在します。

これらを知らずに使ってしまうと、サーバーの移設時などに突然プログラムが動かなくなるリスクがあります。

短縮開始タグ(<? … ?>)のリスク

<?phpではなく<?だけで始める書き方は「短縮開始タグ(short_open_tag)」と呼ばれます。

このタグはphp.iniの設定でshort_open_tag = Onになっている環境でしか動作しません。

多くのモダンな環境やクラウドサービスでは、互換性やXML宣言との衝突を避けるためにデフォルトで無効化されています。

汎用性の高いコードを書くためには、決して使用してはいけない書き方の一つです。

廃止されたASP形式タグとscriptタグ

かつてのPHPには、ASP(Active Server Pages)風の<% ... %>や、<script language="php">といった記述方法がありました。

しかし、これらはPHP 7.0において完全に削除されています。

2026年現在の開発現場で目にすることはまずありませんが、古い教材やWebサイトを参考にする際は注意してください。

PHPタグに関するエラー回避のポイント

PHPタグの扱いに慣れていないと、単純なミスでサイト全体が真っ白になる「ホワイトアウト」を引き起こすことがあります。

ここでは、初心者が陥りやすいミスとその対策を整理します。

タグの入れ子構造に関するミス

PHPタグは、「入れ子(ネスト)」にすることはできません。

<?php ... <?php ... ?> ... ?>のような記述は、パースエラー(文法エラー)の原因となります。

複数の処理を記述する場合は、一つのタグの中にまとめて書くか、一度タグを閉じてから再度新しいタグを開始する必要があります。

セミコロンの打ち忘れと省略ルール

PHPの命令の最後には通常セミコロン(;)が必要ですが、「終了タグの直前」に限ってはセミコロンを省略できます。

そのため、<?= $var ?>の中にセミコロンがなくてもエラーにはなりません。

ただし、複数行にわたる処理を書く場合は、最後の行以外には必ずセミコロンが必要ですので、統一感を出すために常に付ける癖をつけておくと安全です。

PHP
<?php
  echo "1行目";
  echo "2行目" // ここは?>の直前なので省略可能ですが、推奨はされません
?>

全角スペースによるエラー

意外と多いのが、<?phpの「?」と「p」の間に全角スペースが入ってしまったり、タグの開始前に全角スペースが存在するケースです。

全角スペースはPHPエンジンによって「出力すべき文字」とみなされるため、予期せぬ動作を招きます。

コードを書く際は、エディタの設定で全角スペースを可視化しておくことを強くおすすめします。

PHPタグの使い分けまとめ表

これまでに解説したタグの種類と、現在の開発シーンでの推奨度を以下の表にまとめました。

タグの形式名称推奨度主な用途
<?php ... ?>標準タグ◎(最高)ロジック、クラス定義、関数など全般
<?= ... ?>短縮echoタグ○(推奨)テンプレート内での変数出力
<? ... ?>短縮タグ×(非推奨)古い環境との互換性用(新規利用禁止)
<% ... %>ASP形式××(廃止)使用不可

モダンな開発におけるテンプレートエンジンの台頭

2026年現在のプロフェッショナルな開発現場では、PHPタグを直接HTMLに埋め込むのではなく、「テンプレートエンジン」を利用することが一般的です。

例えば、Laravelフレームワークで使用される「Blade」や、Symfonyなどで使われる「Twig」などが代表的です。

テンプレートエンジンでのタグ表現

Bladeでは、PHPタグの代わりに{{ $variable }}という独自の記法を使用します。

これは内部的にPHPの標準タグや短縮echoタグに変換されますが、自動的にエスケープ処理を行ってくれるため、より安全に開発が進められます。

PHP
{{-- Bladeでの記述例 --}}
<p>{{ $userName }}さん、こんにちは。</p>

しかし、こうしたツールも「土台」となっているのは今回解説したPHPタグの仕組みです。

ライブラリやフレームワークの中身を理解し、デバッグを行うためには、ネイティブなPHPタグの知識が欠かせません。

まとめ

PHPタグは、プログラムの境界を決定する非常に重要な要素です。

基本となる<?php ... ?>を正しく使いこなし、純粋なPHPファイルでは終了タグを省略するという習慣を身につけましょう。

また、表示処理においては<?= ... ?>を適切に活用することで、コードの可読性を大幅に向上させることができます。

古い書き方や設定依存の記述を避け、常に最新のベストプラクティスを意識することが、エラーの少ない堅牢なシステム開発への第一歩となります。

今回学んだ知識を活かして、美しくメンテナンスしやすいPHPコードを記述していきましょう。