php - php中ini_set()的目的是什么? (尤其是错误报告)

标签 php compiler-errors ini

好的,所以 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/

相关文章:

java - 我可以将 Eclipse 设置为忽略 "Unhandled exception type"

python - 如何在Pyinstaller中包含Google API JSON凭证文件?

c - 苹果操作系统 "configure: error: cannot run C compiled programs"

用于读取 .ini 文件的 Windows 批处理脚本

php - 我如何转义 .ini 文件中的换行符,以便 Zend_Config_Ini 按字面意义读取它?

给定键列表获取数组值的 PHP 内置方法

php - 如何使每个 php 脚本实例的 session 变量唯一?

php - 寻找三度网络的更有效方法

c++ - 如果 C++ 中的长度大于 n,则跳过读取 INI 文件中的一行

php - 如果不在 PHP 中显式调用父构造函数会发生什么情况?