Tag: PHP

概要

  • "is_null($val)"と"$val === null"の比較
  • "!$val"と"$val === false"の比較

ソース

<?php

function _isnull()
{
    $a = null;
    $b = 0;
    $s = microtime(true);
    for ($i = 0; $i < 1000000; $i++) {
        if (is_null($a)) {
            $b++;
        }
    }
    $e = microtime(true);
    echo $e - $s;
}

function _eqnull()
{
    $a = null;
    $b = 0;
    $s = microtime(true);
    for ($i = 0; $i < 1000000; $i++) {
        if ($a === null) {
            $b++;
        }
    }
    $e = microtime(true);
    echo $e - $s;
}

function _not()
{
    $a = false;
    $b = 0;
    $s = microtime(true);
    for ($i = 0; $i < 1000000; $i++) {
        if (!$a) {
            $b++;
        }
    }
    $e = microtime(true);
    echo $e - $s;
}

function _eqfalse()
{
    $a = false;
    $b = 0;
    $s = microtime(true);
    for ($i = 0; $i < 1000000; $i++) {
        if ($a === false) {
            $b++;
        }
    }
    $e = microtime(true);
    echo $e - $s;
}

for ($i = 0; $i < 5; $i++)
{
    echo 'is_null() : ', _isnull(), "\n";
    echo '=== null  : ', _eqnull(), "\n";
}
for ($i = 0; $i < 5; $i++)
{
    echo '!         : ', _not(), "\n";
    echo '=== false : ', _eqfalse(), "\n";
}

結果

is_null() : 0.27433013916016
=== null  : 0.12881016731262
is_null() : 0.26765298843384
=== null  : 0.12921595573425
is_null() : 0.27661514282227
=== null  : 0.12843203544617
is_null() : 0.27273988723755
=== null  : 0.12838411331177
is_null() : 0.27277398109436
=== null  : 0.13019704818726
!         : 0.12172198295593
=== false : 0.13001990318298
!         : 0.12628889083862
=== false : 0.12996792793274
!         : 0.12158489227295
=== false : 0.13065195083618
!         : 0.12533402442932
=== false : 0.13073110580444
!         : 0.1224958896637
=== false : 0.12990188598633

Last-modified: 2013-07-01 (月) 17:29:34 (1514d)