ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

実行環境のバージョン違いでエラーが出たので対処しました

バージョンアップで、チェックが厳しくなっていたようです。

f:id:AJYA:20130507215629j:plain

photo credit: YanivG via photopin cc

 

新しい実行環境でのテスト

PHP 5.4.7の環境で、以前作られたプログラムを動かしたら、2種類のメッセージ表示されました。

「Strict Standards: Redefining already defined constructor for class EntryTranInput in C:\xampp\htdocs\EntryTranInput.php on line 75」と「Deprecated: Function split() is deprecated in C:\xampp\htdocs\Log.php on line 76」です。

どちらも自分が作ったわけではなく、組み込むために提供されたプログラムなので、勝手に修正して動作がおかしくなるのは避けたいです。

 

調べた結果から対処 

調べていくと、エラー警告の設定を変更すれば、対処できるということがわかりました。

1個目は、php.iniを

error_reporting = E_ALL & ~E_STRICT

とすれば、警告が消えました。

 

2個目は、php.iniを

error_reporting = E_ALL & ~E_DEPRECATED

とすれば、警告が消えました。

 

両方表示したくないので、

error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED

として、表示されなくなりました。

 

今回学んだこと

バージョンあがって、より厳しくなっているので、新しいコードを書くときは、環境を問わず動作するようにしておかないと、後々最新の環境で動かすときに修正が多くなるので、気をつける必要があります。