PHP编码实践

时间:2010-08-31 12:28:26

标签: php

如果我得到一个变量而且我不知道它是否设置我可以写

if (isset($a) && $a > 2)

或者我可以写

if (@ $a > 2)

更短。 第二种语法是否良好?

5 个答案:

答案 0 :(得分:15)

表达式if(@$a)不检查变量是否已设置。 @符号只是表示任何警告,这是一种糟糕的编码风格。

答案 1 :(得分:10)

totally sympathize,但使用@ 来抑制错误是不良做法。

错误仍然存​​在,它只会被抑制。然而,如果在循环中完成,它会花费很多时间来累积很多时间。

此外,您还可以利用“未定义变量”通知的优势:作为避免拼写错误的机制。

答案 2 :(得分:3)

第一种方法是正确的方法。第二种方法非常糟糕。你最终会被错误压制,你甚至都不会知道。有一天你会出现错误,你将无法调试那种糟糕的做法,。

答案 3 :(得分:2)

函数isset检查变量是否存在以及它是否为空。我不太确定你想用&&和$ A

@运算符会抑制由它所附加的表达式生成的错误消息。

答案 4 :(得分:2)

就像人们已经说过的那样,第一个变种是要走的路。 实际上我不喜欢(/ * * /&& $ var)变体来检查变量是否为空。我更喜欢使用

if (isset($var) && !empty($var)) {
    /* foo */
}

或只是

if (!empty($var)) {
    /* foo */
}