Php

使用控制台參數設置 php error_reporting 值

  • April 15, 2020

為了測試我的 PHP 項目的錯誤,我通常使用這個命令:

find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"

我想php -l '{}' \;用一些參數來擴展這部分,所以它將使用自定義的 error_reporting 級別,而不是 php.ini 中定義的級別。這可能嗎?

(我知道這個問題在某種程度上與編碼有關。另一方面,它更多的是關於 shell 命令。如果您認為它在 stackoverflow 上應該更好,那麼請隨意移動它。我不確定這個問題在哪裡更適合。)

根據php -h

-d foo[=bar]     Define INI entry foo with value 'bar'

如果您想要推薦的生產預設值 ( E_ALL & ~E_DEPRECATED),則該值將22527在 PHP 5.3 和24575PHP 5.4+ 中。

php -l -d error_reporting=22527

找到各種組合的價值很簡單。

php -r 'echo E_ALL & ~E_NOTICE | E_STRICT;' # should return 32759
php -r 'echo E_ALL & ~E_DEPRECATED;' # should return 22527 in PHP 5.3, 24575 in PHP 5.4+

引用自:https://serverfault.com/questions/294656