LoginSignup
1
0

More than 5 years have passed since last update.

PHP Manual 読書会(6回目)(演算子#2)

Last updated at Posted at 2017-06-06

PHPに慣れる為に週1ぐらいで更新していきます。PHP Manualを読んで実験して行きます。

前回: PHP Manual 読書会(5回目)(演算子#1)

演算子#2

エラー制御演算子

  • エラー制御演算子@を使用すると発生したエラーメッセージが無視される

通常の場合

<?php

$file = file('hogehgoeoghoehgeheog.txt');
PHP Warning:  file(hogehgoeoghoehgeheog.txt): failed to open stream: No such file or directory

エラー制御演算子をつけた場合

<?php

$file = @file('hogehgoeoghoehgeheog.txt');

なにもでない。

set_error_handler() で自作のエラーハンドラを設定した場合は エラー制御演算子があってもそのエラーハンドラがコールされます。

と書かれているので、set_error_handlerをつけると

<?php

function myHoge($errno, $errstr, $errfile, $errline)
{
    print_r(array($errno,$errstr,$errfile,$errline));
    return;
}

set_error_handler("myHoge");

echo 1/0;
Array
(
    [0] => 2
    [1] => Division by zero
    [2] => /home/xxxxxxxxx/git/php_sample/operators/set_error.php
    [3] => 11
)
INF

このようにhookをかけられます。また、エラー制御演算子が存在していてもこの登録関数は呼び出されます。

1
0
0

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
1
0