使用 isset()判斷字串長度速度比strlen()更快

來源:互聯網
上載者:User
php效能最佳化:使用 isset()判斷字串長度速度比strlen()更快

php中如何判斷字串的長度?

很多人第一想到的應該就是 strlen() mb_strlen() 這些函數了。

但是從程式效能上來講,這兩個函數在判斷字串長度的過程中都不是最佳的,雖然他們是專業級的檢測字串長度的函數。通過本人實踐總結,php判斷字串長度,使用isset()在速度上比strlen()更快,執行效率更高。

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

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

具體通過 isset() 和 strlen() 判斷字串長度

樣本如下:

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

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

PHP strlen() 函數定義和用法strlen() 函數返回字串的長度。

文法:strlen(string)參數:string
描述:必需。規定要檢查的字串。

strlen() 函數執行個體

echo strlen("Hello world!");
?>

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() 函數。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.