この記事は,PHP Advent Calendar 2020 3日目の記事として公開される予定です(11月23日記載).
今年のカレンダーは @rana_kualu さんが作成してくれました.ありがとうございました.
本題
phpのスクリプトで発生したエラーについて,そのエラーがどの出力レベルで報告されるかを確認するスクリプトです.
error_reporting.sh
#!/bin/bash
SCRIPT_NAME="$1"
LEVELS=(E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_STRICT E_RECOVERABLE_ERROR E_DEPRECATED E_USER_DEPRECATED)
for LEVEL in ${LEVELS[@]};
do
echo "${LEVEL}"
php -d error_reporting=${LEVEL} "$1"
done
実行結果はこんな感じです.
$ . ./error_reporting.sh e_notice.php
E_ERROR
E_WARNING
E_PARSE
E_NOTICE
PHP Notice: Undefined variable: a in /home/taro/projects/php-fun/e_notice.php on line 4
PHP Stack trace:
PHP 1. {main}() /home/taro/projects/php-fun/e_notice.php:0
E_CORE_ERROR
E_CORE_WARNING
E_COMPILE_ERROR
E_COMPILE_WARNING
E_USER_ERROR
E_USER_WARNING
E_USER_NOTICE
E_STRICT
E_RECOVERABLE_ERROR
E_DEPRECATED
E_USER_DEPRECATED
読み込んだファイルです.
e_notice.php
<?php
echo $a;
以上 PHP Advent Calendar 2020 3日目でした.
明日は @yoshikyoto さんです.