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

isset()速度爲何比strlen()更快呢?php

strlen()函數函數執行起來至關快,由於它不作任何計算,只返回在zval 結構(C的內置數據結構,用於存儲PHP變量)中存儲的已知字符串長度。可是,因爲strlen()是函數,多多少少會有些慢,由於函數調用會通過諸多步驟,如字母小寫化、哈希查找,會跟隨被調用的函數一塊兒執行。所以在某些狀況下,合理使用isset()能夠加速你的程序。由於isset()是一種語言結構,它的執行不須要函數查找和字母小寫化等。html

具體經過 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() 函數測試

定義和用法code

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

語法:strlen(string)字符串

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

strlen() 函數實例class

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

相關文章
相關標籤/搜索