Pull to refresh

Проверка на непустость

Reading time1 min
Views655
Смотрел тут чужой код и увидел несколько видов проверки пустое ли значение переменной
1) empty($a)
2) $a==' '
3) !$a
Интересно, какой из этих методов более быстрый.

update:Переменная $a существует, ниже указан только тестовый кусок
function gettime()
{
  $arr=explode(' ',microtime());
  return $arr[1]+$arr[0];
}

define ('Count',10000000);
$v=gettime();
for($i=0;$i[=Count;++$i)
  if (empty($a))
  {
  }
echo ((gettime()-$v))."\n";

$v=gettime();
for($i=0;$i[=Count;++$i)
  if ($a==''))
  {
  }
echo ((gettime()-$v))."\n";

$v=gettime();
for($i=0;$i[=Count;++$i)
  if (!$a)
  {
  }
echo ((gettime()-$v))."\n";


Результат вполне ожидаемый.
1) 4,39
2) 4,87
3) 3,79
Операция логического отрицания быстрее, чем вызов встроенной функции проверки на пустоту и операции сравнения.

Однако не стоит забывать, что такое расхождение на 10 млн. итераций.
Tags:
Hubs:
Total votes 15: ↑8 and ↓7+1
Comments28

Articles