本稿は PHP の基本事項に関する記事です。PHP コードを書くときに、最初に押さえておくべきファイル形式・コメント記法・文末区切り・PHP タグなどをまとめます。
基本ルール
- ファイルの拡張子は「.php」
- 単一行コメントは「//」 または 「#」
- 複数行コメントは「/* */」
- 文末は「; (セミコロン)」
- 大文字小文字: 関数名・クラス名は区別しないが、変数名は区別する
- 変数は
$から始める ($name) - 文字コードは
UTF-8(BOM なし) が標準
PHP タグ
| タグ | 用途 |
|---|---|
<?php ... ?> | 標準の PHP コードブロック |
<?= 値 ?> | echo のショートタグ (常に有効) |
<? ... ?> | ショートタグ (short_open_tag 有効時のみ、非推奨) |
PHP ファイル専用のファイル (関数定義・クラスのみ) では、最後の ?> を書かないのが推奨です (末尾の余分な改行・空白による予期せぬ出力を防げます)。
最小のサンプル
|
<?php |
HTML との混在
|
<!DOCTYPE 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);を冒頭に書くと、ファイル単位で厳密な型チェックになる
制御構文の括弧
|
// 通常の波括弧 |
PHP のバージョン
| バージョン | 状況 (2026年時点の目安) |
|---|---|
| PHP 5.x | EOL。利用継続は危険 |
| PHP 7.0〜7.4 | EOL。早急に 8.x へ |
| PHP 8.0〜8.1 | EOL 済 / 終盤。本番は 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_reportingやdisplay_errorsは本番では非表示にする
関連
- 親カテゴリ: 文法 (PHP)
- PHP 本体: PHP
- 関連: 関数 / スーパーグローバル変数
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09