PHP パフォーマンスの最適化: isset() を使用して文字列長を決定する方が strlen() よりも高速です_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:31:28
オリジナル
913 人が閲覧しました

PHPで文字列の長さを確認するにはどうすればよいですか?多くの人が最初に思い浮かべるのは、関数 strlen() と mb_strlen() です。ただし、プログラムのパフォーマンスの観点から見ると、これら 2 つの関数は文字列の長さを検出するためのプロフェッショナル レベルの関数ではありますが、文字列の長さを決定するプロセスでは最適ではありません。

私自身の実践によると、PHP は strlen() よりも isset() を使用した方が文字列の長さを決定し、実行効率が高くなります。

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

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

具体的には、isset() と strlen() を通じて文字列の長さを決定する例は次のとおりです。 リーリー

2 つの関数 strlen() と isset() を詳しく分析してみましょう。

PHP strlen() 関数

定義と使用法

strlen() 関数は文字列の長さを返します。

構文: strlen(string)

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

strlen()関数の例 リーリー

結果は次のように出力されます:

12

PHP isset() 関数

isset関数は、変数が設定されているかどうかを検出する関数です。

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

戻り値:

変数が存在しない場合は、FALSEを返します 変数が存在し、その値が NULL の場合も FALSE を返します
変数が存在し、値が NULL でない場合は、TRUE が返されます
複数の変数を同時にチェックする場合、各項目が前の要件を満たしている場合にのみ TRUE が返され、それ以外の場合は結果が FALSE になります
unset() を使用して変数が解放された場合、その変数は isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。また、NULL バイト ("") は PHP の NULL 定数と同等ではないことに注意してください。

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

興味がありそうな記事

    php 文字列置換関数 str_replace は preg_replace より高速です
  • php 最も正確な文字列長インターセプト関数
  • php 忘れられていた強力な文字列処理関数のいくつか
  • php 文字長を取得するutf8 文字列の
  • PHP の文字列関数完全な概要
  • PHP で文字列が英語、純粋な中国語、または中国語と英語の組み合わせであるかどうかを判断する方法
  • PHP 文字列エスケープ関数 (addslashes、stripslashes) 詳細な説明
  • phpは、文字列内の複数の連続するスペースを1つのスペースに変換します

http://www.bkjia.com/PHPjc/764071.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/764071.html技術記事 PHPで文字列の長さを確認するにはどうすればよいですか?多くの人が最初に考えるのは strlen() mb_strlen() です。しかし、プログラムのパフォーマンスの観点から、これら 2 つの関数は文字列の長さを決定することが非常に困難です...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!