経験豊富なプログラマーは、PHP で isset() を使用して文字列の長さを決定する方が、strlen() よりも高速で、実行効率が高いことを発見しました。
つまり:
コードをコピーします コードは次のとおりです:
$str = 'aaaaaa';
if(strlen($str) > 6)
VS
if(!isset ($str{6 })
例を使った簡単なテストは、この状況が基本的に真であることを示しています。 isset() は strlen() よりもほぼ 3 倍効率的です
例:
コードをコピーします コードは次のとおりです:
php
//strlenメソッドを使用します
$arr = "123456";
$sTime = microtime(1);
if(strlen($arr) > 6){
// echo 1;
}
echo microtime(1 ) - $sTime;
出力: 0.00035595893859863
コードをコピーします コードは次のとおりです。 ?php
// isset($arr{}) メソッドを使用します
$arr = "1 23456" ;
$sTime = microtime(1);
if(!isset($arr{6})){
// echo "1rn";
}
echo microtime(1) - $sTime;
出力:
0.00019097328186035
isset() strlen() より速いのはなぜですか
strlen() 関数は計算を行わず、zval 構造体 (PHP 変数を格納するために使用される C の組み込みデータ構造) のみを返すため、非常に高速に実行されます。に格納される文字列の長さ。ただし、strlen() は関数であるため、関数呼び出しは小文字などの多くの手順を経るため、多少遅くなります (注釈: 小文字の関数名を指します。PHP は関数名の大文字と小文字を区別しません)。 )、ハッシュ検索、呼び出された関数と一緒に実行されます。 場合によっては、 isset() トリックを使用すると、コードの実行を高速化できます。 isset() は言語構造であるため、その実行には関数の検索や小文字の文字は必要ありません。つまり、文字列の長さをチェックするトップレベルのコードでは、実際には多くのオーバーヘッドが費やされません。
つまり、 isset() を呼び出す方が strlen() よりも高速です。
http://www.bkjia.com/PHPjc/736830.html
www.bkjia.com本当http://www.bkjia.com/PHPjc/736830.html技術記事経験豊富なプログラマは、PHP で isset() を使用して文字列長を決定する方が、strlen() よりも高速で実行効率が高いことに気づきました。 つまり、コードをコピーします。 コードは次のとおりです。 $str = ‘aaaaaa’ if(...;