0Pricing
PHP Academy · レッスン

PHPタグと埋め込み構文

HTML内でPHPの開始タグ・終了タグと短縮echo構文を使います

「PHPタグと埋め込み構文」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

PHP と HTML の混在

PHP は HTML ファイル内に埋め込めるように設計されています。サーバーが .php ファイルを処理すると、PHP タグの間にあるすべての内容が実行され、それ以外の内容はそのままブラウザーに送信されます。

標準の PHP タグ

標準的な PHP の開始タグと終了タグです。

<!DOCTYPE html>
<html><body>
<?php
    $name = 'Alice';
    echo 'Hello, ' . $name;
?>
<p>This is regular HTML.</p>
<?php
    echo '<p>Back in PHP!</p>';
?>
</body></html>

短縮 echo タグ

短縮 echo タグを使用すると、echo という語を書かずに値を出力できます。

<!-- Long form -->
<h1><?php echo $pageTitle; ?></h1>

<!-- Short form (preferred in templates) -->
<h1><?= $pageTitle ?></h1>

<!-- With escaping -->
<h1><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?></h1>

出力は必ずエスケープする

ユーザーが制御できるデータは、エスケープせずに出力してはいけません。

<?php
$unsafe = '<script>alert("xss")</script>';
$safe   = htmlspecialchars($unsafe, ENT_QUOTES, 'UTF-8');

// Define a helper:
function e(string $str): string {
    return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
?>

<p><?= e($userInput) ?></p>

HTML 属性内の PHP

HTML 属性内に PHP を埋め込みます。必ずエスケープしてください。

<?php
$url    = '/profile/' . $user['id'];
$active = $currentPage === 'home' ? 'active' : '';
$count  = 5;
?>

<a href="<?= htmlspecialchars($url) ?>" class="nav-link <?= $active ?>">
    Inbox <span class="badge"><?= $count ?></span>
</a>

短縮タグを避ける

短縮開始タグ(php を伴わない less-than ?)は推奨されません。php.ini の設定に依存し、XML と競合するためです。必ず完全な開始タグまたは短縮 echo 形式を使用してください。

<?php
// These are the safe, portable forms:
// <?php echo $name; ?>    — full form
// <?= $name ?>            — short echo (always enabled 5.4+)

// The short open tag <? is different and unreliable
// Do not use it in code intended for multiple environments.

テンプレート内のインライン条件分岐

テンプレート内でインラインの三項演算子または null 合体演算子を直接使用します。

<?php
$role = 'admin';
$loggedIn = true;
?>

<nav>
    <?= $loggedIn ? 'Welcome back!' : 'Please log in' ?>
    <?php if ($role === 'admin'): ?>
        <a href="/admin">Admin Panel</a>
    <?php endif; ?>
</nav>

出力の取得に使う出力バッファリング

出力バッファリングを使用して、PHP と HTML の出力を変数に取り込みます。

<?php
function renderCard(string $title, string $body): string {
    ob_start();
    ?>
    <div class="card">
        <h2><?= htmlspecialchars($title) ?></h2>
        <p><?= htmlspecialchars($body) ?></p>
    </div>
    <?php
    return ob_get_clean();
}

echo renderCard('PHP', 'A server-side scripting language.');

クロスプラットフォーム対応の PHP_EOL

どのプラットフォームでも正しい改行を使用するために PHP_EOL を使います。

<?php
$lines = ['Line 1', 'Line 2', 'Line 3'];
$content = implode(PHP_EOL, $lines);
file_put_contents('output.txt', $content);

// PHP_EOL = "\n" on Linux/Mac, "\r\n" on Windows
echo PHP_EOL === "\n" ? 'Unix line ending' : 'Windows line ending';

終了タグの省略

ベストプラクティスとして、PHP だけで構成されるファイルの末尾では PHP の終了タグを省略します。これにより、ヘッダーが送信される前に意図しない空白が送信されるのを防げます。

<?php
// config.php — PHP only, no closing tag needed
defined('APP_KEY') or define('APP_KEY', 'secret123');
define('DB_HOST', 'localhost');
define('DB_NAME', 'myapp');

// No closing PHP tag here — prevents header issues

複数の PHP ブロック

1 つのファイルに、HTML と交互に複数の PHP ブロックを含めることができます。

<?php
$items = ['Apple', 'Banana', 'Cherry'];
$count = count($items);
?>

<h2>Shopping List (<?= $count ?> items)</h2>
<ul>
<?php foreach ($items as $item): ?>
    <li><?= htmlspecialchars($item) ?></li>
<?php endforeach; ?>
</ul>

確認問題

HTML テンプレートで変数を echo する場合、推奨される PHP の出力構文はどれですか。

まとめ: PHP タグと埋め込み

重要なポイント:

  • コードブロックには <?php ?>、出力には <?= ?> を使用する
  • 常に htmlspecialchars() で出力をエスケープする
  • PHP だけで構成されるファイルの末尾では終了タグを省略する
  • 出力バッファリングを使用してレンダリング済み HTML を取得する
  • 移植性のある改行には PHP_EOL を使用する

よくある質問

「PHPタグと埋め込み構文」レッスンは無料ですか?

はい。「PHPタグと埋め込み構文」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「PHPタグと埋め込み構文」で何を学びますか?

HTML内でPHPの開始タグ・終了タグと短縮echo構文を使います ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「PHPタグと埋め込み構文」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. PHPタグと埋め込み構文
  2. PHPループで動的なHTMLを生成する
  3. ファイルのインクルードと読み込み
  4. テンプレートパターン:ロジックとビューの分離
← PHP Academyに戻る