1.

基本事項

編集

本稿は PHP の基本事項に関する記事です。PHP コードを書くときに、最初に押さえておくべきファイル形式・コメント記法・文末区切り・PHP タグなどをまとめます。

基本ルール

  • ファイルの拡張子は「.php
  • 単一行コメントは「//」 または 「#
  • 複数行コメントは「/* */
  • 文末は「; (セミコロン)」
  • 大文字小文字: 関数名・クラス名は区別しないが、変数名は区別する
  • 変数$ から始める ($name)
  • 文字コードUTF-8 (BOM なし) が標準

PHP タグ

タグ用途
<?php ... ?>標準の PHP コードブロック
<?= 値 ?>echo のショートタグ (常に有効)
<? ... ?>ショートタグ (short_open_tag 有効時のみ、非推奨)

PHP ファイル専用のファイル (関数定義・クラスのみ) では、最後の ?>書かないのが推奨です (末尾の余分な改行・空白による予期せぬ出力を防げます)。

最小のサンプル

<?php
// 単一行コメント
# シェル風コメントも可
/*
 * 複数行コメント
 */

$name = "Taro";
echo "Hello, $name!";

HTML との混在

<!DOCTYPE html>
<html><body>
  <h1><?= htmlspecialchars($title, ENT_QUOTES, 'UTF-8') ?></h1>
  <?php if ($users): ?>
    <ul>
    <?php foreach ($users as $u): ?>
      <li><?= htmlspecialchars($u->name, ENT_QUOTES, 'UTF-8') ?></li>
    <?php endforeach; ?>
    </ul>
  <?php endif; ?>
</body></html>

文字列の書き方

記法挙動
'hello' (シングルクォート)変数展開なし。リテラルそのまま
"hello $name" (ダブルクォート)変数展開・エスケープシーケンス有効
HEREDOC <<<EOT ... EOT;複数行 + 変数展開
NOWDOC <<<'EOT' ... EOT;複数行 + 変数展開なし

変数と型

  • 変数は $x = 1; のように宣言時に値を入れて型決定 (動的型付け)
  • 型: int / float / string / bool / array / object / null / resource
  • 関数宣言で型を明示できる (function f(int $x): string)
  • declare(strict_types=1); を冒頭に書くと、ファイル単位で厳密な型チェックになる

制御構文の括弧

// 通常の波括弧
if ($ok) { echo "OK"; } else { echo "NG"; }

// 別記法 (テンプレートでよく見る)
if ($ok): echo "OK"; else: echo "NG"; endif;
foreach ($items as $i): ... endforeach;

PHP のバージョン

バージョン状況 (2026年時点の目安)
PHP 5.xEOL。利用継続は危険
PHP 7.0〜7.4EOL。早急に 8.x へ
PHP 8.0〜8.1EOL 済 / 終盤。本番は 8.2 以上推奨
PHP 8.2 / 8.3 / 8.4サポート中

PHP 8 では型の強化・属性 (アトリビュート)・match・名前付き引数・readonly プロパティ・enum など、新しい構文が多数追加されています。

注意点

  • BOM 付き UTF-8 はヘッダ送信前に出力されてしまい headers already sent エラーになる。BOM なしで保存
  • HTML 出力は必ず htmlspecialchars() でエスケープ。テンプレートエンジン (Blade / Twig 等) を使う場合は自動エスケープを活用
  • SQL はプレースホルダで渡す。文字列連結はインジェクションの温床
  • 短縮タグ <? ... ?> は環境依存。<?php ... ?> または <?= ... ?> を使う
  • 関数・クラス定義のみのファイルは末尾 ?> を省略
  • error_reportingdisplay_errors は本番では非表示にする

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 基本事項
  2. HTMLへの埋め込み
  3. 変数
  4. 可変変数
  5. 定数
  6. データ型
  7. キャスト
  8. エスケープ文字
  9. 配列
  10. 演算子
  11. 代入の際の注意点
  12. 条件分岐
  13. 繰り返し処理
  14. クラスとインスタンス
  15. コンストラクタ
  16. 関数
  17. スーパーグローバル変数
  18. スコープ
  19. staticについて
  20. yieldについて
  21. ファイルのアップロード方法
  22. DB接続方法
  23. SQL実行方法
  24. カプセル化の具体例
  25. 継承の構文
  26. オーバーライド
  27. ポリモーフィズム(多様性)の具体例
  28. 抽象クラス・メソッドの構文と具体例
  29. GET通信
  30. try catchで全てのエラーを拾う方法