PHP中ini_set()的用途是什么?(尤其是错误报告)

isw*_*nky 5 php ini compiler-errors

好的,PHP具有ini_set()许多人都知道的功能,并且将使用它来设置各种配置选项(在此处)以帮助进行开发等。但是,此功能似乎仅在运行时有效,并且在有任何功能的情况下将不起作用致命错误或脚本有语法错误,无法解析/编译。

因此,肯定没有必要这样做(根据手册):

http://php.net/manual/zh/function.ini-set.php

例子

Example#1设置一个ini选项

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>
Run Code Online (Sandbox Code Playgroud)

我不知道我是否只是缺少一些东西,并且我的php.ini配置不正确,但是很多时候我都没有错误。对于初学者/大三学生来说,无疑会有很多语法错误(缺少分号,右括号等),并且说初中生会寻找打开错误的方法,并假设上面的手动输入正确无误,但在重新运行时他们的脚本,可惜他们没有错误,因为脚本不能首先被解析/编译。

我知道您可以display_errors = On在php.ini文件中进行设置,然后重新启动Web服务器以将所有错误显示在屏幕上(在开发环境中使用此命令,肯定不存在),但是最好不要删除该功能,而只是删除该功能配置不同错误级别的php.ini文件?

更新:

我知道ini_set不仅用于显示错误,但是如果您在某些脚本/函数/文件中调用ini_set,则代码就不是非常易于管理,并且使用php.ini这样的代码更有意义?

更新资料

因此,ini文件可用于设置全局配置选项,当然您可以将其用于安全性或优化性,但是开发人员仍然可以在运行时使用ini_set覆盖其中的某些选项,这可能不是所希望的

总结(@Hanky?Panky):

当一些琐碎的语法错误仍不显示时,为什么可以选择显示错误?

Pav*_*lik -1

ini_set \xe2\x80\x94 设置配置选项的值。设置给定配置选项的值。配置选项将在脚本执行期间保留这个新值,并将在脚本结束时恢复,如果没有 ini_set(),将使用 php.ini 文件中的值。

\n\n

编辑:

\n\n

您可能会发现这很有帮助:

\n\n
// Turn off all error reporting\nerror_reporting(0);\n\n// Report simple running errors\nerror_reporting(E_ERROR | E_WARNING | E_PARSE);\n\n// Reporting E_NOTICE can be good too (to report uninitialized\n// variables or catch variable name misspellings ...)\nerror_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);\n\n// Report all errors except E_NOTICE\nerror_reporting(E_ALL & ~E_NOTICE);\n\n// Report all PHP errors (see changelog)\nerror_reporting(E_ALL);\n\n// Report all PHP errors\nerror_reporting(-1);\n\n// Same as error_reporting(E_ALL);\nini_set('error_reporting', E_ALL);\n
Run Code Online (Sandbox Code Playgroud)\n