4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP7調査(32)error_clear_last関数の新設

Last updated at Posted at 2015-05-14

PHP 5.2.0で実装されたerror_get_last()という関数があります。これは直前に発生したエラーの情報を返すもので、エラーの情報をPHPの配列の形で取り出すことができます。

<?php
@$a = $b;
var_dump(error_get_last());

このPHPスクリプトを実行すると、次のように直前のエラーに関する情報が得られます。

array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(12) "/tmp/foo.php"
  ["line"]=>
  int(2)
}

エラーを「@」で抑制していてもエラー情報が取り出せるのは少し面白いですね。

しかし、この関数を繰り返し使うことを考えると、この内容をリセットできた方が便利です。これを実現するのが、PHP7で実装されたerror_clear_last()です。

<?php
@$a = $b;
var_dump(error_get_last()['message']); // string(21) "Undefined variable: b"
var_dump(error_get_last()['message']); // string(21) "Undefined variable: b"
error_clear_last();
var_dump(error_get_last()); // NULL

そもそもerror_get_last()なんて関数はじめて知った、というのが正直な感想ですけどね…。

参照

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?