我一直认为in_array严格模式会更快,或者至少与非严格模式相同。但是在进行一些基准测试后,我发现在搜索整数时它们之间的执行时间存在巨大差异。字符串和数组测试表明严格模式更快。为什么?
测试代码-(PHP 7.2.1):
<?php
$array = array_fill(0, 10000, 12345);
for ($i=0; $i<100000; $i++) {
in_array($i, $array, true);
}
Run Code Online (Sandbox Code Playgroud)
时间php test.php
php -c test.php 12.98s用户0.04s系统98%cpu 13.234
<?php
$array = array_fill(0, 10000, 12345);
for ($i=0; $i<100000; $i++) {
in_array($i, $array, false);
}
Run Code Online (Sandbox Code Playgroud)
时间php test.php
php -c test.php 6.44s用户0.04s系统99%cpu 6.522