ホームページ  >  記事  >  バックエンド開発  >  isset() を使用して文字列の長さを決定する方が、strlen() よりも高速です

isset() を使用して文字列の長さを決定する方が、strlen() よりも高速です

WBOY
WBOYオリジナル
2016-06-20 13:04:221140ブラウズ

php のパフォーマンスの最適化: isset() を使用して文字列の長さを決定する方が strlen() よりも高速です

php で文字列の長さを決定するにはどうすればよいですか?

多くの人が最初に考えるのは strlen() mb_strlen() です。

しかし、プログラムのパフォーマンスの観点から見ると、これら 2 つの関数は、文字列の長さを検出するためのプロフェッショナル レベルの関数ではありますが、文字列の長さを決定するプロセスでは最適ではありません。私自身の実践の要約を通じて、PHP は文字列の長さを決定し、isset() を使用した方が strlen() よりも高速で実行効率が高くなります。

では、なぜ isset() が strlen() よりも速いのでしょうか?

strlen() 関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造) に格納されている既知の文字列長を返すだけなので、非常に高速に実行されます。ただし、strlen() は関数であるため、関数呼び出しは小文字やハッシュ検索など多くの手順を経て、呼び出された関数と一緒に実行されるため、多少遅くなります。したがって、場合によっては、 isset() を適切に使用すると、プログラムの速度が向上することがあります。 isset() は言語構造体であるため、その実行には関数の検索や文字の小文字などは必要ありません。

具体的には isset() と strlen() で文字列の長さを決定します

例は次のとおりです。

$str='http://www.scutephp.com/';<br />if(strlen($str)<5){echo "未满5";}<br />if(!isset($str{5})){echo "未满5";}

解析してみましょう2 つの関数 strlen() と isset() については、以下で詳しく説明します。

PHP strlen() 関数の定義と使用法 strlen() 関数は文字列の長さを返します。

構文: strlen(string) パラメータ: 文字列
説明: 必須。チェックする文字列を指定します。

strlen() 関数の例

<?php<br />echo strlen("Hello world!");<br />?>

PHP isset() 関数 isset 関数は、変数が設定されているかどうかを検出します。

構文: bool isset (mixed var [,mixed var [, ...]] )

戻り値:変数が存在しない場合は FALSE を返します
変数が存在する場合
変数が存在し、値が NULL でない場合は、TRUE が返されます。
複数の変数を同時にチェックする場合、各単一項目が前の条件を満たす場合にのみ TRUE が返されます。要件が満たされていない場合、結果は FALSE
unset() を使用して変数が解放された場合、その変数は isset() ではなくなります。

isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。

NULL バイト ("") は PHP の NULL 定数と同等ではないことにも注意してください。

警告: isset() は変数でのみ使用できます。他の引数を渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用します。



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