看来(!$ 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)
答案 0 :(得分:5)
!$a == 'hello'
将$a
强制转换为(否定的)布尔值,并将其与字符串进行比较。这可能会更快,因为它比实际比较两个字符串更容易决定。它也会给你错误的结果。您需要比较的是!($a == 'hello')
,我猜这个时间大致相等。