2009-08-02 50 views
1
// Get the image information and display the image: 
    if ($image = @getimagesize ("../uploads/$pid")) { 
     echo "<div align=\"center\"><img src=\"show_image.php?image=$pid&name=" . urlencode($row['image_name']) . "\" $image[3] alt=\"{$row['print_name']}\" /></div>\n"; 
    } else { 
     echo "<div align=\"center\">No image available.</div>\n"; 
    } 

@getimagesize中的@ do做了什么?@在这个php中做什么?

+0

可能的重复[参考 - 这个符号在PHP中意味着什么?](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon 2011-11-26 10:29:55

回答

10

它停止显示和/或从该特定函数调用记录错误。

0

它抑制了出现的错误。如果您正在调用的命令有错误或警告状态,则不会在页面中获得任何打印输出。你也可以看到它与mysql_ *例程一起使用。

17

这是一个Error Control Operator,它会掩盖(防止显示)getimagesize函数可能产生的任何错误。

它,它一般不认为是一个很好的做法是使用它:它使你的代码真的很难调试(如果有错误,你不会知道它)

目前“@”错误控制 运算符前缀将甚至禁用 关键错误 的错误报告将终止脚本执行。 除其他事项外,这意味着如果 您使用“@”从 某些功能抑制的错误,要么是不 使用或已被错误地输入时, 脚本会没有任何迹象 ,为什么死在那里。

甚至有一个PHP扩展,称为scream,禁用此操作 - 当你maintaintaing是使用该运营商有很多的apllication可以是相当有用的......

一般情况下,最好是设置error_reportingsee also)级别和display_errors,以便在开发过程中显示错误,而不是在生产中 - 这样做总是隐藏它们更有用!