不平等运算符的表现

时间:2012-01-21 01:01:09

标签: php performance micro-optimization

看来(!$ a =='hello')总是快于($ a!='hello')

// (!$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

知道为什么会这样吗?据我所知,在大多数情况下,这种优化水平是无关紧要的。问题完全出于好奇。 (参考:http://www.php.net/manual/en/language.operators.comparison.php#99216

1 个答案:

答案 0 :(得分:5)

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