【ワードプレス】問い合わせフォームから届く、ひたすら迷惑なスパムメールを防ぐ為には?
僕的PHP備忘録第8弾。エラー紹介記事としては最終回。今回紹介するエラーは「E_DEPRECATED」、
「E_STRICT」。前回のエラーに比べると緊急度は下がりますが、それでも長く使っていくシステムならしっかりと対応をしておいた方が良いエラーとなります。
前回までのエラー関連の記事
E_DEPRECATED
E_DEPRECATEDは以前バージョンまでは使えていた文法や関数が現行のバージョンでは非推奨となり、将来的に廃止されるものを使用していた場合に発生します。警告ですので実際には廃止されるまでは動作しますがいずれ廃止となりバグの原因となるので警告が発生した時は積極的に現行バージョンの文法や関数へ修正しましょう。
<?php
echo 'こんにちは';
$tags_string = 'one, two, three';
$tags = split(',', $tags_string);
echo 'さようなら';
?>
上のプログラムを実行すると
こんにちは
PHP Deprecated: Function split() is deprecated in index.php on line 6
さようなら
の形のエラーが吐き出されます。
E_DEPRECATEDが発生した時は、後々廃止となるので修正した上で今後は使用しないようにしましょう。
E_STRICT
E_STRICTはエラーの中では重要度が一番低いですが、それでも発生した場合はしっかりと修正した方が良いです。
内容は互換性の維持の為に変更した方が望ましい記述がある場合に発生します。
<?php
echo 'こんにちは';
class foo {
public function __construct() {}
public function foo() {}
}
echo 'さようなら';
?>
上のプログラムを実行すると
Strict Standards: Redefining already defined constructor for class foo in index.php on line 7
こんにちは
さようなら
内容は、クラスのコンストラクタをPHP4(クラス名と同じメソッドを定義する方法)とPHP5のもの(__construct()マジックメソッドを用いる方法)の両方を定義していることに対して警告が発生しています。
プログラムを停止せずプログラムが最後まで実行されていますが警告が表示されている状態というのは好ましくないためしっかりと修正していきましょう
まとめ
エラー文は最初見たときは呪文のような内容となり、苦手意識を持つ方も多いですがエラー文としっかり付き合っていかないと制作速度も精度も上がっていかないので色々なエラー文を見て慣れていきましょう。
大事なところは何行もある内の1行か2行ほどですのでエラーの種類を覚えて大事な箇所を早く見つけれるようにトレーニングをして快適なプログラミングライフを送りましょう。
参考資料:パーフェクト PHP 著:小川 雄大、柄沢 宗太郎、橋口 誠