Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';php中ini_set()的用途是什么?(特别是错误报告)_Php_Compiler Errors_Ini - Fatal编程技术网

什么';php中ini_set()的用途是什么?(特别是错误报告)

什么';php中ini_set()的用途是什么?(特别是错误报告),php,compiler-errors,ini,Php,Compiler Errors,Ini,好的,所以PHP有一个函数ini_set(),很多人都知道这个函数,并将使用它来设置各种配置选项(),以帮助开发等。但是,这个函数似乎只在运行时起作用,如果有任何致命错误或者脚本有语法错误,并且无法解析/编译,它就不起作用 因此,这样做毫无意义(根据手册): 示例 示例#1设置ini选项 我不知道我是否只是缺少了一些东西,我的php.ini没有正确配置,但很多时候我没有收到任何错误。对于初学者/少年来说,毫无疑问会有很多语法错误(缺少分号、右括号等),并且说少年会搜索如何打开错误,假设上面

好的,所以PHP有一个函数
ini_set()
,很多人都知道这个函数,并将使用它来设置各种配置选项(),以帮助开发等。但是,这个函数似乎只在运行时起作用,如果有任何致命错误或者脚本有语法错误,并且无法解析/编译,它就不起作用

因此,这样做毫无意义(根据手册):

示例

示例#1设置ini选项


我不知道我是否只是缺少了一些东西,我的php.ini没有正确配置,但很多时候我没有收到任何错误。对于初学者/少年来说,毫无疑问会有很多语法错误(缺少分号、右括号等),并且说少年会搜索如何打开错误,假设上面的手动输入是正确的,但是当重新运行脚本时,唉,他们没有得到错误,因为脚本首先无法解析/编译

我知道您可以在php.ini文件中设置
display_errors=On
,然后重新启动web服务器,将所有错误显示在屏幕上(在开发环境中使用此选项,绝对不是实时的),但是删除该函数并仅为不同的错误级别配置php.ini文件不是更好吗

更新:

我知道ini_集不仅仅用于显示错误,但是如果在某些脚本/函数/文件中调用ini_集,那么代码就不能很好地管理,使用php.ini进行类似的操作不是更有意义吗

更新

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

总之(@Hanky웃淘气的):


为什么我有显示错误的选项,而一些琐碎的语法错误仍然不会显示?

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

编辑:

您可能会发现以下内容很有帮助:

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

是的,您是对的,删除该函数并只针对不同的错误级别配置php.ini文件更好

但是,只有当您的机器中只有一个项目时,这才是好的,因此,您可以在php.ini中进行所有配置设置 考虑一下,如果你有多个项目设置。如果您不想在该项目中使用某些设置,它将从php.ini获得


因此,对于某些配置设置,建议您仅使用ini_set()在项目级别进行设置,而不会反映其他项目。

string ini_set(string$varname,string$newvalue)

基本上,设置给定配置选项的值。配置选项将在脚本执行期间保留此新值,并在脚本结束时恢复

用于脚本运行期间可以配置的所有变量。请浏览下面的链接

 string ini_set ( string $varname , string $newvalue );
ini_set的目的是设置给定配置选项的值。 此新值在脚本执行期间由配置选项保留,并在脚本结束时恢复

设置ini选项的示例

 <?php
echo ini_get('display_errors');

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

可以在运行时使用ini_set()函数配置其他设置: 内存限制和最大执行时间
(来自关于PHP基础知识的ZCE测试部分)。

ini\u集('display\u errors',true)
ini_set
不仅用于设置错误显示模式:)@Hanky웃Panky是的,我理解,请看更新,这是一个很有道理的问题,我想知道为什么我可以选择显示错误,而一些琐碎的语法错误仍然无法显示,为什么会出现错误?好奇的
 <?php
echo ini_get('display_errors');

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