雑多なブログ

音楽や語学、プログラム関連の話題について書いています

PHP - 原因不明のエラーになったら確認すること

PHPで開発していると文法に問題はないのに何故かプログラムが正常に動作しない、あるいはエラーが出てしまうという現象に遭遇することがあります。
今回は開発者がうっかりやりがちな原因をご紹介します。

1. 文字コードUTF-8のBOM有りになっている

文字コードUTF-8に設定している場合は、BOMなしで保存するようにしよう。
BOMコードがファイルに混入することで正常に実行されなくなってしまう。

2. 開始タグ・終了タグの前後に余計な文字が混入している

これもよくやりがちですが、タグの前後に余計な文字が混入するケースです。

PHPのファイルにはPHPだけではなくhtmlも混在して記述できるため、htmlと同じ感覚で記述してトラブルになることも少なくありません。

特に注意したいのが、空白文字の混入です。
空白文字は目視で分からないため、うっかり混入しても気づかない事が多いです。
エディターの設定で、少なくとも全角の空白文字は色分けして表示するなどの対策を推奨します。

下記の "【不正な文字列】" の位置に空白文字を含む文字列が混入すると、PHPは正常に動作しません。

【不正な文字列】<?php

echo 'Hello' . PHP_EOL;

?>【不正な文字列】

まとめ

PHPは手軽にプログラムを作成できる反面、意外なところで落とし穴があります。 言語仕様の学習とともに、こういったトラブルの事例についても学習を進めることでより安定して開発ができるようになります。