php isset()判斷字符串長度速度比strlen()更快?

2016-10-28 1339 2 編輯:程序員永勝 來源:程序設計

php中如何判斷字符串的長度?很多人第一想到的應該就是 strlen() mb_strlen() 這些函數了。但是從程序性能上來講,這兩個函數在判斷字符串長度的過程中都不是最佳的,雖然他們是專業級的檢測字符串長度的函數。

通過本人實踐總結,php判斷字符串長度,使用isset()在速度上比strlen()更快,執行效率更高。

那么isset()速度為什么比strlen()更快呢?

strlen()函數函數執行起來相當快,因為它不做任何計算,只返回在zval 結構(C的內置數據結構,用于存儲PHP變量)中存儲的已知字符串長度。但是,由于strlen()是函數,多多少少會有些慢,因為函數調用會經過諸多步驟,如字母小寫化、哈希查找,會跟隨被調用的函數一起執行。因此在某些情況下,合理使用isset()可以加速你的程序。因為isset()是一種語言結構,它的執行不需要函數查找和字母小寫化等。

具體通過 isset() 和 strlen() 判斷字符串長度示例如下:

查看代碼打印

$str='http://www.phpernote.com/php-template/436.html';

if(strlen($str)<5){echo "未滿5";}

if(!isset($str{5})){echo "未滿5";}

下面我們來詳細的分析一下strlen()和isset()這兩個函數。

PHP strlen() 函數

定義和用法

strlen() 函數返回字符串的長度。

語法:strlen(string)

參數:string 

描述:必需。規定要檢查的字符串。

strlen() 函數實例

查看代碼打印

<?php

echo strlen("Hello world!");

?>

結果將輸出:

12

PHP isset() 函數

isset函數是檢測變量是否設置。

語法:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

若變量不存在則返回 FALSE 

若變量存在且其值為NULL,也返回 FALSE 

若變量存在且值不為NULL,則返回 TURE 

同時檢查多個變量時,每個單項都符合上一條要求時才返回 TRUE,否則結果為 FALSE

如果已經使用 unset() 釋放了一個變量之后,它將不再是 isset()。若使用 isset() 測試一個被設置成 NULL 的變量,將返回 FALSE。同時要注意的是:一個 NULL 字節("")并不等同于 PHP 的 NULL 常數。

警告:isset() 只能用于變量,因為傳遞任何其它參數都將造成解析錯誤。若想檢測常量是否已設置,可使用defined() 函數。

本站文章均為深正網站建設摘自權威資料,書籍,或網絡原創文章,如有版權糾紛或者違規問題,請即刻聯系我們刪除,我們歡迎您分享,引用和轉載,但謝絕直接搬磚和抄襲!感謝...
關注深正互聯
七星彩头尾 自动售卖机售货赚钱吗 捕鱼大师的工具箱 电子厂赚钱美发 全民麻将作弊透视版下载 水电工赚不赚钱 上海翻百搭麻将规则 美国公民有赚钱压力吗 奇迹棋牌湖北官方下载 男人说带你一起赚钱 博乐彩票安卓 去年加盟零元赚钱项目 dnf刷那个远古图赚钱吗 3元赖子麻将 卖烤鸡翅赚钱吗 东北吉林麻将玩法 赚钱的女人视频教程