error_reporting() 和 ini_set('error_reporting') 之间的区别?
在我的脚本中使用 error_reporting()
或 ini_set('error_reporting')
时,两者之间是否存在功能差异?一种方法优于另一种方法吗?
就其价值而言,我看到许多框架使用 error_reporting()
,但这两个选项似乎仅在运行时设置,然后在脚本执行后重置回 php.ini 中的默认值。
When using error_reporting()
or ini_set('error_reporting')
in my scripts, are there any functionality differences between the two? Is one method preferred over the other?
For what it's worth, I see many frameworks using error_reporting()
, but both options appear to be set during runtime only, then reset back to their default in php.ini after script execution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
唯一小的功能差异似乎是
ini_set
在无法更改设置时返回false
,而error_reporting
始终返回旧的错误级别。The only small functional difference seems to be that
ini_set
returnsfalse
when it was unable to change the setting anderror_reporting
always returns the old error level.“两条路通罗马”: ini_set('error_reporting', ) 覆盖 php.ini 文件中设置的参数。 error_reporting() 接收级别编号或级别 id
这两个选项都将生效,直到脚本结束执行。下一个将再次使用 .ini 中定义的参数。
"Two roads leading you to Rome": ini_set('error_reporting', ) overrides the parameter set in the php.ini file. error_reporting() receives level number or level id
Both options take effect until the script ends its execution. The next one will use the params defined in the .ini, again.
它们在功能上是相同的,但如果您使用的 IDE 知道 PHP 函数名称,那么这是一种简单的方法,可以确保您不会意外地输错要设置的指令的名称。
从 PHP 的
error_reporting() 手动输入<的示例部分/代码>
:
They are functionally identical, but if you are using an IDE that knows the PHP function names, this is an easy way to make sure you don't accidentally mistype the name of the directive you are tying to set.
From the examples section on PHP's Manual Entry for
error_reporting()
:另外,尽管文档指出
error_reporting
的签名 是:,它并不完全正确,因为您可以设置一个
string
并使用ini_get
读回它:产生:
因此,
error_reporting($x)
在语义上等价于ini_set('error_reporting', $x)
,而
error_reporting()
在语义上等价于(int)ini_get('error_reporting')
。Also, even though the docs stated that the signature for
error_reporting
is:, it's not exactly correct because you can set a
string
and read it back withini_get
:produces:
So,
error_reporting($x)
is semantically equivalent toini_set('error_reporting', $x)
,and
error_reporting()
is semantically equivalent to(int)ini_get('error_reporting')
.