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()関数を使用します。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック



