- 公開日: 2016年09月07日
PHPビギナー必見!知っておきたいPHPエラー6選
WordPressやPHP学習中の方向けに、PHPでよく遭遇するエラーについてご紹介させて頂きます。
PHPビギナー必見!知っておきたいPHPエラー
そもそもPHPエラーって
ローカル開発環境やCodeCamp受講者が利用するエディタでは、PHPに記述ミスがあるとエラーや警告が表示されます。
ローカル開発環境でもエラー時に白紙画面となっている方は、ぜひphp.iniを編集してエラー内容を表示させてみましょう。
なぜエラーが表示されない場合があるかというとエラー内容からハッキングの糸口を探られないようにするためです。
時々耳にするwebサイトのハッキングやデータベースのハッキング、webサイトの乗っ取りなどは、PHPの記述ミス、構文ミスが原因となることがあります。
なので、例えばWordPressなどでは、PHPエラーがあった場合白紙画面となり、エラー内容が表示されませんが、あれはハッカーにヒントを与えないため、通常非表示となっています。
_
同じようにエラー内容が出力される言語としては、RubyやJavaなどがあり、反対に出力されない言語としてはJavaScriptなどがあります。
PHPのエラーって心が折れる時がありますが、有り難いお告げとして、真摯に向き合うことが必要なのかもしれません。
PHPエラーの公式ドキュメント
PHPエラーの内容を理解する
PHPで表示されるエラーの内容には一定のルールがあります。
Warning:fopen(welcome.txt):failedtoopenstream:Nosuchfileordirectoryin/var/www/html/w3c.phponline2
というエラーが表示されたとします。
英文なので一見見難いですが、上記文章は分解して見ることができます。
色別にエラーメッセージを分解してみますと、
Warning:fopen(welcome.txt):failedtoopenstream:Nosuchfileordirectoryin/var/www/html/w3c.phponline2Warningfopen(welcome.txt):failedtoopenstream:Nosuchfileordirectoryinvar/www/html/w3c.phpline2
エラーレベル:エラーメッセージ;エラーのあるファイルと場所エラーレベル:エラーメッセージ;エラーのあるファイルと場所
_
となり、どこの何がどういけていないのかを教えてくれていることが分かります。
これを手がかりにコードの修正を行っていきます。
次にPHPで設定されているエラーレベルを確認しておきましょう。
PHPエラーの種類
- 警告Warning- 注意Notice- 構文エラーParse error- 致命的なエラーFatal error- エラー- サーバー内部コードのエラーHTTP ERROR 500
PHP学習者およびweb開発者にとっては、エラーレベルというよりもコードが出力されない、実行されないことの方がストレスになっていると思います。
エラーの内容や解決策というのはプログラムの内容によってそれぞれ異なりますので、抽象的な情報は参考にならないと考えます。そこで今回は、PHPビギナーがよくやってしまうミスをいくつかご紹介させて頂きます。
PHPビギナーがよくやってしまうエラー6選
Parseerror誤字脱字
Parseerror:syntaxerror,unexpected”こんにちは;’(T_ENCAPSED_AND_WHITESPACE)in/var/www/html/php-test.phponline5Parseerror*Parse error/var/www/html/php-test.php5*
PHPビギナーにとって““‘‘** ; **;
Noticeスクリプトエラー
Notice:Undefinedvariable:personalin/home/codecamp6414/htdocs/chat.phponline97Notice
ボタンを押したり、何か入力したりというスクリプト実行時(PHP処理実行中)に間違いがあると表示されるエラーになります。
Warning参照ファイルなし
Warning:fopen(welcome.tx):failedtoopenstream:Nosuchfileordirectoryin/var/www/html/w3c.phponline2Warning*Warning/var/www/html/w3c.php2*
コードに記述してあるファイルが見当たらなかったり、引数が間違っていたりすると表示されるエラーになります。
Fatalerror致命的なミス
致命的、と言われると何か悪いことをしているようにも思いますが、プログラムで記述して使っている拡張機能が実は使えない状態だった時などに現れるエラーになります。よくあるケースとしては、サーバー側でPDO(PHPの拡張モジュール)の設定ができていなかったりした時です。
エラー
PHPとmySQLはよくセットに使われますが、この2つの接続内容に間違いがあるとエラーが表示されます。
データベースのエラー集700種類以上(参考
番外編WordPressでのエラーHTTPERROR500
WordPressの編集現場で遭遇するエラーになります。
\Webサイト担当者としてのスキルが身に付く/
まとめ
1と0の世界で動くコンピューターと曖昧な世界で動く人間が、ジャストフィットして稼働することは不可能と考えます。その結果、プログラムが実行できないエラーがあっても当然なのではないでしょうか?
GoToCodeCamp!** **GoToCodeCamp!
- この記事を書いた人
- オシママサラ