PHP 函数和@functions
Posted
技术标签:
【中文标题】PHP 函数和@functions【英文标题】:PHP functions and @functions 【发布时间】:2011-04-28 10:40:14 【问题描述】:基本上,我见过有人在调用函数之前使用@
,不是针对每个函数,而是针对某种扩展函数,例如file_get_contents()
、mysql_connect()
等。
是的,问题是:在函数调用之前存在这些@
s 的目的是什么?
或者换句话说,@file_get_contents()
和file_get_contents()
有什么区别?
【问题讨论】:
见Reference - What does this symbol mean in php? What does @ mean in PHP?的可能重复 【参考方案1】:@ 是一个error control operator。基本上它是在抑制错误。
【讨论】:
【参考方案2】:我对函数前面使用的 @ 也有类似的疑问。 为了避免这种情况,我在函数调用之前进行了一些验证。 我的例子是:
if ( is_file($filename) )
$timestamp = filemtime( $filename );
【讨论】:
【参考方案3】:@function 不会在其 html 输出中显示任何错误消息,而常规函数调用会。
【讨论】:
@fabrik 与您的原因相同。但是,虽然你的模棱两可(只是“输出”),但这个是清晰的 HTML 输出,当然,这是一派胡言。错误控制与程序的输出无关。 @fabrik:老实说,我不明白你是在嘲讽还是真的在问。无论哪种方式我都不在乎。 @Col。弹片:要求您输入您对错误控制的定义,以便我们所有人获得对该主题的更多了解。我同意我的回答缺乏深度,因为我只是说了我理解的内容:) 谢谢。 他不是在和你说话。但是对于投反对票的人。现在明白了?错误控制由两部分组成:标准错误输出destination和level错误。@
运算符和error_reporting
设置都是错误的控制级别。 (@ 将其设置为 0)而 log_errors
和 display_errors
设置负责目标。后者负责您所说的:HTML 输出。虽然 @ 与它无关,但 id 永远不应该用于此目的【参考方案4】:
这是 PHP 的 error control operator
用于抑制函数调用产生的任何错误。
【讨论】:
【参考方案5】:函数前面的@
符号可防止在调用函数时显示错误。
【讨论】:
以上是关于PHP 函数和@functions的主要内容,如果未能解决你的问题,请参考以下文章