相关疑难解决方法(0)

为什么array_key_exists比引用数组上的isset慢1000?

我发现如果在数组引用中设置了一个键,则array_key_existsisset检查时慢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)

php performance reference isset array-key-exists

22
推荐指数
2
解决办法
9955
查看次数

标签 统计

array-key-exists ×1

isset ×1

performance ×1

php ×1

reference ×1