php中@作用,@字符在PHP中有什么作用?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:

Reference - What does this symbol mean in PHP?

What does @ mean in PHP?

我的代码中有一行如下所示:

@mysql_select_db($dbname)or die("错误:无法选择数据库");

它可以工作,但我想知道@是做什么的,为什么会在那里。

在我最近看到的一句名言中,"它阻止你发现你的程序出了什么问题"。我想是戈登…

@Elyobo不认为是我,但里面有很多事实

@戈登,那时候你应该保持安静,接受荣誉;)它就在这上面的某个地方,但我现在似乎找不到它了。

@在这个复制品之前是伊格纳西奥·瓦兹奎兹·艾布拉姆斯的复制品。我记得我在参考文献中链接了它。)

"@Gordon,你应该保持安静……"我觉得这个问题很有趣。

@是的,但是我默认启用了尖叫;)

@戈登,做得不错。@伊瑟,你刚才让我把咖啡弄洒了。

@符号抑制前面表达式的任何错误和注意事项。

请参阅以下参考:php错误控制运算符

PHP supports one error control

operator: the at sign (@). When

prepended to an expression in PHP, any

error messages that might be generated

by that expression will be ignored.

在这种情况下,@将禁止常规的PHP数据库连接错误(可能包含敏感信息)。如果出现连接错误,将执行"or die"部分,失败并显示一般错误消息。该行可能是从"快速和肮脏"示例复制的。

使用错误抑制操作符@被认为是错误的样式,特别是在缺少其他形式的错误处理时。这会使调试复杂化——在没有任何迹象表明发生了错误的情况下,如何才能发现错误?在生产系统中,最好将所有错误记录到一个文件中,并禁止在页面上呈现错误。您可以在php.ini文件中这样做,或者(如果您在共享主机上,并且不允许进行配置更改)使用以下代码。

ini_set('display_errors', false);

ini_set('log_errors', true);

ini_set('error_log', '/var/log/apache/php-errors.log');

@将禁止所有错误,而不仅仅是数据库连接错误。

谢谢,我已经编辑了我的答案来反映这一点。

它抑制所有错误输出。一般来说,除非你有充分的理由,否则你不应该使用它。我不知道为什么在您发布的示例中使用它,或者为什么使用die()。应捕获错误并进行相应的处理。选择可能会失败,原因有很多,有些可能是可恢复的。就像没有建立到数据库的连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值