2012-01-21 51 views
-3

看来,(!$ A == '你好')是一致的速度比($ A!= '你好')性能不平等运营商的

// (!$a == 'hello') 
Used time: 52.743232011795 
Used time: 52.633831977844 
Used time: 51.452646970749 

//($a != 'hello') 
Used time: 76.290767908096 
Used time: 81.887389183044 
Used time: 64.569777011871 

任何想法,为什么发生这种情况?我明白,在大多数情况下,这种优化级别是不重要的。这个问题纯粹是出于好奇。 (Ref:http://www.php.net/manual/en/language.operators.comparison.php#99216

+6

这两个操作没有相同的结果。 – deceze

+0

告诉我,是'$ a'套餐? –

+0

@milo是的。它与上面的PHP参考中的代码相同。 – mixdev

回答

5

!$a == 'hello'$a转换为(否定)布尔值并将其与字符串进行比较。这可能会更快,因为比实际比较两个字符串更容易做出决定。它也会给你错误的结果。你需要比较的是!($a == 'hello'),我猜想这个时间大概是相等的。

+0

你是对的。我测试它和!($ a =='hello')在性能上是可比的。 – mixdev