© 2023 MNET LLC. All Rights Reserved.

僕的PHP備忘録:エラーは友達怖くない。その3

山下 生真

僕的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 著:小川 雄大、柄沢 宗太郎、橋口 誠

山下 生真

役員

建築家を志し京都の大学を卒業。様々な業種を経て、IT業界に心惹かれ、一心発起し、プログラミングスクールに業務の傍ら通う。趣味のYouTubeの動画編集・撮影活動で現CEOと出会う。幼少期からの夢であった”魔法使いになってみんなの役に立つ”実現の為、IT技術を駆使し、世の中の役に立つことを目標に起業。座右の銘は”野心・向上心”。

HOT TOPICS
人気の記事

全て見る