Головна »»» Web »»» PHP

Що швидше isset чи array_key_exists

<?php
 
// масив
$array = range(1, 10000);
$key_start = 5000;
$key_finish = 15000;
 
// ітерації
$iterations_list = array(
 10000,
 100000,
 1000000
);
 
echo '<pre>';
foreach ($iterations_list as $iterations) {
 for ($test = 1; $test <= 3; $test++) {
 echo $test . '. ' . $iterations . PHP_EOL;
 
 // start isset
 $start = microtime(true);
 
 for ($i = 0; $i < $iterations; $i++) {
 $key = rand($key_start, $key_finish);
 isset($array[$key]);
 }
 
 $isset_time = microtime(true) - $start;
 echo "isset time: {$isset_time} sec" . PHP_EOL;
 
 
 // start array key exists
 $start = microtime(true);
 
 for ($i = 0; $i < $iterations; $i++) {
 $key = rand($key_start, $key_finish);
 array_key_exists($key, $array);
 }
 
 $array_time = microtime(true) - $start;
 echo "array_key_exists time: {$array_time} sec" . PHP_EOL;
 
 if ($array_time > $isset_time) {
 $ratio = round($array_time / $isset_time, 2);
 echo {$ratio} isset быстрее array_key_exists" . PHP_EOL . PHP_EOL;
 } else {
 $ratio = round($isset_time / $array_time, 2);
 echo {$ratio} array_key_exists быстрее isset" . PHP_EOL . PHP_EOL;
 }
 
 }
 
 echo PHP_EOL . PHP_EOL;
}

В результаті проведення досліджень виявилося, що isset швидше за array_key_exists приблизно в 1.7 рази.

 
10.02.2014
1884 переглядів