【发布时间】:2013-02-08 06:17:55
【问题描述】:
给我一个这样做的充分理由
if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...
而不是这个
if( @$_GET['key'] === '123' )
{...
我要的是这个非常具体的代码案例,而不是一般!
不欢迎以下原因:
- "使用
@会使应用程序减慢几纳秒,因为 无论如何都会创建错误(即使它被抑制)。“我更喜欢慢一点 代码但更具可读性。 - "使用
@是坏习惯。" 一般情况下这可能是正确的,但我不相信这种情况(而且坏习惯可能 取决于上下文,PHP 手册中的函数,如fopen他们 建议在某些情况下使用@,请参阅错误/异常 http://www.php.net/manual/en/function.fopen.php)
【问题讨论】:
-
所以你认为错误抑制会让你的代码更具可读性?!? wtf!
-
虽然你可以做到这一点,但为什么不直接定义一个全局
GET函数之类的? -
可恢复性。常见的
isset编组将无法确定变量是否未设置,总是默默地用替代值替换它。@抑制是可逆的。如果您绝对确定以后不需要调试某些内容,请使用isset。如果输入参数可能至关重要/安全相关,请使用@(然后使用日志记录错误处理程序)。 -
!empty()>isset() -
@MarkBaker:不,但在这种情况下是的。我明确表示不是一般情况。让我们不要为此发动战争。我渴望一个简单的理由/答案。
标签: php get isset error-suppression