为了测试我的 PHP 项目是否存在错误,我通常使用以下命令:
find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"
我想用php -l '{}' \;
一些参数扩展该部分,以便它使用自定义的 error_reporting 级别,而不是 php.ini 中定义的级别。这可能吗?
(我知道这个问题有点与编码有关。另一方面,它更多地与 shell 命令有关。如果您认为它在 stackoverflow 上会更好,那么请随意移动它。我不确定这个问题更适合放在哪里。)
答案1
根据php -h
-d foo[=bar] Define INI entry foo with value 'bar'
如果您想要推荐的生产默认值(E_ALL & ~E_DEPRECATED
),则该值将22527
在 PHP 5.3 和24575
PHP 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+