Authentication




Cancel OK
B!コメントする  2012-11-06 19:19:00 by old

変数の存在確認のスピード

$testの中に変数が入っているかどうか・・・
これを確認する方法はいくつかありますが、昔からあるのが

http://php.net/manual/ja/function.isset.php

という関数。
これは中に何か入っていれば true で何も無ければ false を返すものです。
他には

http://php.net/manual/ja/function.empty.php

という関数があります。
実際のところほとんど使わないけど。
issetはnullでも入ってればtrueになったりemptyは未定義やnullの場合もtrueを返すので使いどころは要注意ですが。

で、どっちが早いか見てみた。
単純に10万回まわしてみただけだけど。

まずempty

$test = "hogehoge";

// 開始時間
$startTime = microtime(true);

for( $i = 0; $i < 100000; $i++ )
{
$result = empty($test);
}

// 終了時間
$endTime = microtime(true);
echo $endTime - $startTime . ' second';


10回の平均は0.004秒

次にisset

$test = "hogehoge";

// 開始時間
$startTime = microtime(true);

for( $i = 0; $i < 100000; $i++ )
{
$result = isset($test);
}

// 終了時間
$endTime = microtime(true);
echo $endTime - $startTime . ' second';


10回の平均は0.008秒から0.01秒

なんと言うかissetの結果がちょっと安定しませんでしたけど
総じてemptyの方が早いみたい。

とここまでやっておいてemptyは使わないだろうな~とも思ったりもした。


PHP  

  • コメント
  • コメントはまだありません