ubuntu php忽略ini_set(" disply_error")并仅使用php.ini设置

时间:2018-04-03 09:25:53

标签: php ubuntu

如何忽略通过代码完成的函数调用的所有ini_set("disply_error")错误,并仅使用在php.ini文件中配置的设置?

当我为display_errors执行grep时,它会显示一个无法通过手动更改的大型列表,所以有没有办法只使用php.ini设置?

1 个答案:

答案 0 :(得分:2)

要阻止通过ini_set()更改设置,您需要覆盖或完全禁用它。

禁用ini_set

ini_set放入php.ini

中禁用的功能列表中
disable_functions=ini_set

这样做的缺点是,每次调用ini_set()都会记录错误。

覆盖ini_set

至少有两种方法可以覆盖一个功能:

您的系统中可能安装了overwrite_function()Docs)。以下代码段将以静默方式禁用ini_set()

override_function('ini_set', '$a,$b', 'return true;');

您可以使用命名空间来覆盖行为:

<?php
    namespace MyNamespace {
        function ini_set($key, $value) 
        {
            return true;
        }

        ini_set('display_error', 'all');

在上面的代码段中,函数ini_set将解析为覆盖行为的MyNamespace\ini_set

此方法的来源和说明:https://stackoverflow.com/a/12128017/1392490