unset vs. NULL [duplicado]

Duplicata Possível:
O que é melhor para liberar memória com PHP: unset () ou $ var = null

Esta questão é meio que um seguimentoO que é melhor em liberar memória com PHP: unset () ou $ var = null

Resumindo, os meus próprios parâmetros parecem contradizer a resposta dada nessa questão. Minha pergunta é ... por quê? A resposta está errada ou há algo que eu não estou entendendo?

<?php
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
    $a = 'a';
    $a = NULL;
}
$elapsed = microtime(true) - $start;

echo "took $elapsed seconds\r\n";



$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
    $a = 'a';
    unset($a);
}
$elapsed = microtime(true) - $start;

echo "took $elapsed seconds\r\n";
?>

Por que parece que "= null" é mais rápido.

Resultados do PHP 5.4:

demorou 0.88389301300049 segundosdemorou 2.1757180690765 segundos

Resultados do PHP 5.3:

demorou 1.7235369682312 segundosdemorou 2.9490959644318 segundos

Resultados do PHP 5.2:

demorou 3.0069220066071 segundosdemorou 4,7002630233765 segundos

Resultados do PHP 5.1:

demorou 2,6272349357605 segundosdemorou 5.0403649806976 segundos

As coisas começam a parecer diferentes com o PHP 5.0 e 4.4.

5,0:

demorou 10.038941144943 segundosdemorou 7.0874409675598 segundos

4.4:

demorou 7.5352551937103 segundosdemorou 6.6245851516724 segundos

Tenha em mente que microtime (true) não funciona no PHP 4.4, então eu tive que usar o exemplo microtime_float dado em php.net/microtime / Example # 1.

questionAnswers(1)

yourAnswerToTheQuestion