ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで文字列の長さを決定するより効率的な方法

PHP_PHP チュートリアルで文字列の長さを決定するより効率的な方法

WBOY
WBOYオリジナル
2016-07-13 10:36:57738ブラウズ

経験豊富なプログラマーは、PHP で isset() を使用して文字列の長さを決定する方が、strlen() よりも高速で、実行効率が高いことを発見しました。
つまり:

コードをコピーします コードは次のとおりです:

$str = 'aaaaaa';
if(strlen($str) > 6)
VS
if(!isset ($str{6 })

例を使った簡単なテストは、この状況が基本的に真であることを示しています。 isset() は strlen() よりもほぼ 3 倍効率的です
例:
コードをコピーします コードは次のとおりです:

//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(...;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。