好的,所以 PHP 有函数 ini_set()
很多人都知道并将使用它来设置各种配置选项(here)以帮助开发等。但是,此功能似乎只在运行时工作,如果有任何 fatal error 或脚本有语法错误,无法解析/编译。
因此肯定没有必要这样做(来自手册):
http://php.net/manual/en/function.ini-set.php
Examples
Example #1 Setting an ini option
<?php
echo ini_get('display_errors');
if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}
echo ini_get('display_errors');
?>
我不知道我是否只是遗漏了一些东西并且我的 php.ini 配置不正确,但很多时候我没有收到任何错误。对于初学者/初学者来说无疑会有很多语法错误(缺少分号,右括号等),并且说初级会搜索如何打开错误,假设上面的手动输入是正确的,但是当重新运行时他们的脚本,唉,他们没有错误,因为脚本一开始就无法解析/编译。
我知道你可以设置
display_errors = On
在 php.ini 文件中并重新启动您的 Web 服务器以将所有错误显示在屏幕上(在开发环境中使用它,绝对不是实时的),但是删除该功能并仅配置 php.ini 不是更好不同错误级别的文件?更新:
我知道 ini_set 不仅用于显示错误,但是如果您在某些脚本/函数/文件中调用 ini_set 代码就不是很容易管理,并且将 php.ini 用于类似的东西不是更有意义吗?
更新
所以 ini 文件可以用来设置全局配置选项,当然你会用它来进行安全或优化,但是开发人员仍然可以使用 ini_set 在运行时覆盖其中的一些选项,这可能是不可取的
总结 (@Hanky웃Panky):
为什么在一些琐碎的语法错误仍然无法显示时,我可以选择显示错误?
最佳答案
是的,你说得对,最好只删除该功能,只为不同的错误级别配置 php.ini 文件。
但是,这只有在您的机器中只有一个项目的情况下才有用,因此,您可以在 php.ini 中进行所有配置设置
考虑一下,如果您有多个项目设置。如果您不希望该项目中的某些设置仍然可以从 php.ini 获取
因此,对于某些配置设置,建议您只需使用 ini_set() 在项目级别设置它们,并且不会反射(reflect)其他项目。
关于php - php中ini_set()的目的是什么? (尤其是错误报告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25759947/