Mar*_*aio 4 php get error-suppression isset
给我一个很好的理由
if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...
Run Code Online (Sandbox Code Playgroud)
代替这个
if( @$_GET['key'] === '123' )
{...
Run Code Online (Sandbox Code Playgroud)
我要的是这种非常具体的代码案例,而不是一般情况!
不受欢迎的原因如下:
@会使应用程序减慢几纳秒,因为无论如何都会产生错误(即使它被抑制了)。 ”我更喜欢较慢的代码,但可读性更好。@习惯是坏习惯。 ”一般而言,这可能是正确的,但是在这种情况下,我并不相信(而且,坏习惯可能取决于具体情况,请参考PHP手册中的函数,如fopen建议@在某些情况下使用,请参见Errors / http://www.php.net/manual/en/function.fopen.php上的异常)性能影响实际上并不是针对此示例的最佳论据,您必须测量自己的应用程序中的性能才能确定是否存在问题。如果未设置要检查的大量项目,或者在循环中放置了此类检查,则很有可能导致速度降低。
与使用@运算符相关的主要问题是,它可能会成为代码中的约定,因此尽管您的示例看似无害,但您以后可能会发现自己或您的团队使用:
if( @IsAvailable() ) {
Run Code Online (Sandbox Code Playgroud)
错误抑制开始隐藏您未曾预料到的真实错误以及您没有的错误-而且您根本不知道发生了什么,因为您根本没有任何异常信息。
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |