json_encode vs. serialize

Итак, продолжение серии бесполезных исследований. В этот раз мы сравниваем несколько разные по сути функции, которые, тем не менее, часто используются с одной целью. В этом исследовании мы хотим представить массив значений (не объектов PHP) в качестве строки. Это исследование инициировал на работе Фархад Вильданов. К сожалению, ему это не помогло, так как он имел дело… Continue reading json_encode vs. serialize

array_map(‘intval’, $array) vs. array_map(function($val) { … }, $array)

И я продолжаю серию своих никчемных исследований… <?php ini_set(‘memory_limit’, ‘4096M’); $array = []; for ($i = 0; $i < 1000000; $i++) { $array[$i] = (string)$i; } $start = microtime(true); $tmp = array_map(‘intval’, $array); $end = microtime(true); echo ‘array_map(\’intval\’, $array): ‘ . ($end – $start) . PHP_EOL; $start = microtime(true); $tmp = array_map(function($value) { return (int)$value;… Continue reading array_map(‘intval’, $array) vs. array_map(function($val) { … }, $array)

array_key_exists vs. isset

Очередное маленькое бесполезное исследование скорости работы двух похожих функций. Код и результаты, как водится, ниже. <?php $array = range(0, 1000000, 3); $start = microtime(true); for ($i = 0; $i < 1000000; $i++) { array_key_exists($i, $array); } $end = microtime(true); echo ‘array_key_exists: ‘ . ($end – $start) . PHP_EOL; $start = microtime(true); for ($i = 0;… Continue reading array_key_exists vs. isset

function_exists vs. extension_loaded

Одно небольшое бесполезное исследование провел сегодня на работе по долгу службы. Код и результаты его выполнения ниже. <?php $functionExistsStart = microtime(true); for ($i = 0; $i < 1000000; $i++) { function_exists(‘this_function_doesnt_exist’); } $functionExistsEnd = microtime(true); $extenstionLoadedStart = microtime(true); for ($i = 0; $i < 1000000; $i++) { extension_loaded(‘this_extension_is_not_loaded’); } $extenstionLoadedEnd = microtime(true); echo ‘function_exists ‘… Continue reading function_exists vs. extension_loaded