我发现如果在数组引用中设置了一个键,则array_key_exists比isset检查时慢1000倍.是否有人了解PHP的实现方式解释了为什么这是真的?
编辑:我添加了另一个案例,似乎指出在使用引用调用函数时需要开销.
基准示例
function isset_( $key, array $array )
{
return isset( $array[$key] );
}
$my_array = array();
$start = microtime( TRUE );
for( $i = 1; $i < 10000; $i++ ) {
array_key_exists( $i, $my_array );
$my_array[$i] = 0;
}
$stop = microtime( TRUE );
print "array_key_exists( \$my_array ) ".($stop-$start).PHP_EOL;
unset( $my_array, $my_array_ref, $start, $stop, $i );
$my_array = array();
$start = microtime( TRUE );
for( $i = 1; $i < 10000; $i++ ) { …Run Code Online (Sandbox Code Playgroud)