php代码,是慢还是错?

时间:2011-01-19 13:08:15

标签: php zend-studio

“在此行找到多个注释”

我之前一直在使用aptana和其他IDE,但从来没有给我这个错误,但是昨天我安装了zend studio,它在我指定的所有代码中都给出了以下错误,并且同时检查条件是否存在。< / p>

code:
line 16: if ($message_array = @unserialize($e->getMessage()))
line 17:    $message = $message_array;

在所有if条件下,我将值赋给变量并检查变量是否为true / false,它给出了错误“在此行找到了多个注释”

2 个答案:

答案 0 :(得分:9)

是的,这种语法通常被大多数体面的IDE标记为“意外分配”(因为如果你的意思是===,这种情况并不明显)。大多数将允许您将其包装在()中以使错误无效(从那时起,您显然希望得到结果而不是测试):

if (($message_array = @unserialize($e->getMessage()))) {
}

另外,为了便于阅读和维护,我会在那里提出一些建议。

首先,使用大括号。由于它只是一个让你不能使用它们的特殊情况,我个人认为总是使用它们是更好的形式,因此很清楚它是什么意思。

其次,在if子句之外进行所有对齐。它使您更快速,更容易地快速了解您的意思。而且它看起来不那么混乱。

$message_array = @unserialize($e->getMessage());
if ($message_array) {
    ...
}

第三,我建议避免使用@运算符。对我而言,它是代码腐烂的标志。虽然我知道它易于使用且比正确处理错误更容易,但我认为这只是一个捷径,会让你的生活更加艰难。你可以通过几种方式避免它。首先,您可以在将字符串传递给unserialize之前检查字符串。确保它是非空的,字符串等。其次,你可以安装error handler来抛出PHP错误的异常(我做的)。这样,您只需将unserialize调用包装在try {} catch(){}块中即可。它更好,因为你实际上可以检查错误,而不仅仅是相信抛出的错误是你认为的错误......

答案 1 :(得分:3)

这不是实际错误。相反,IDE在同一代码行中发现了多个错误,警告或提示。

您可以查看“问题”标签以查看实际的错误和警告。