プログラミング

PHPでtrigger_errorの使い方【サンプルあり】

こんにちは。リノです。

この記事では、PHPでTrigger_Errorを使う方法をお伝えしています。また、Trigger_errorだけではなく、よく使われるset_error_handlerも交えてお伝え出来ればと思います。

Trriger_Errorとは

PHPマニュアルでは、Trigger_Errorについて以下のように定義しています。

trigger_error — ユーザーレベルのエラー/警告/通知メッセージを生成する。

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

と書かれているのですが、わかりづらいので実際のソースコードで見て行きます。

このコードでは、2行目でTrigger_errorを用いることでエラーを引き起こしています。

これにより、ブラウザには「E_USER_NOTICEのエラー!!」という文字が出力されます。

ちなみにこのTrigger_Errorですが、上記で使ったE_USER_NOTICEのエラーの以外に、以下二つのエラー表示トリガーがあります。

  • trigger_error(“E_USER_WARNINGのエラー!!”,E_USER_WARNING);
  • trigger_error(“E_USER_ERRORのエラー!!”,E_USER_ERROR);

Set_error_handlerと一緒に使う

Trigger_ErrorはSet_error_handlerと一緒に使うことが出来ます。

Set_error_handlerは、エラーが起きた時に備えて、あらかじめエラーの処理方法を定義する関数です。
※Trigger_error関数は、Set_Error_handlerと必ずしも一緒使わなきゃいけないという規約はありません。

以下、サンプルコードになります。

6行目でtrigger_errorを用いてエラーを出力していますが、2行目でSet_error_handler関数を使い、エラーが発生した場合には「エラー発生」と出力するように設定しています。そのため、コードを実行した結果には「エラー発生」のみが出力されます。

次のコードでは、Set_error_handlerを更に細かく設定しています。

Set_Error_Handlerを細かく設定し、E_USER_WARNINGの場合とE_USER_NOTICEの時だけエラーを出力するように設定しているので、20行目のE_USER_ERRORはスルーされます。

ちなみに少し余談にはなりますが、最後の行に「echo “$a”;」のような未定義の変数を入れた場合にも、出力内容は上記のコードと変わりはありません。なぜなら、Set_Error_Handlerで出力するエラーを定義していて、「echo “$a”;」を出力してエラーが起きた場合の処理を何も記述していないからです。

このように、最初のコードで示したエラーしか表示されません。

まとめ

今回は、Trigger_Error関数についてコードをまとめてみました。僕自身、使うことがあまりなかったりするのですが、色々気になったのでまとめてみました。

皆様の探し物の一助になればと思います。