使用控制台参数设置 php error_reporting 值

Raf*_*ger 11 php command-line-interface console

为了测试我的 PHP 项目的错误,我通常使用以下命令:

find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"
Run Code Online (Sandbox Code Playgroud)

我想php -l '{}' \;用一些参数扩展该部分,以便它使用自定义的 error_reporting 级别,而不是在 php.ini 中定义的级别。这可能吗?

(我知道这个问题与编码有关。另一方面,它更多地与 shell 命令有关。如果您认为它在 stackoverflow 上应该更好,那么请随意移动它。我不确定该问题更适合哪里。)

h0t*_*1r3 16

根据 php -h

-d foo[=bar]     Define INI entry foo with value 'bar'
Run Code Online (Sandbox Code Playgroud)

如果您想要推荐的生产默认值 ( E_ALL & ~E_DEPRECATED),则该值应22527为 PHP 5.3 和24575PHP 5.4+。

php -l -d error_reporting=22527
Run Code Online (Sandbox Code Playgroud)

查找各种组合的值很简单。

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+
Run Code Online (Sandbox Code Playgroud)