Heim  >  Artikel  >  Backend-Entwicklung  >  使用 isset()判断字符串长度速度比strlen()更快

使用 isset()判断字符串长度速度比strlen()更快

WBOY
WBOYOriginal
2016-06-20 13:04:221182Durchsuche

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/';<br />if(strlen($str)<5){echo "未满5";}<br />if(!isset($str{5})){echo "未满5";}

下面我们来详细的分析一下strlen()和isset()这两个函数。

PHP strlen() 函数定义和用法strlen() 函数返回字符串的长度。

语法:strlen(string)参数:string 
描述:必需。规定要检查的字符串。

strlen() 函数实例

<?php<br />echo strlen("Hello world!");<br />?>

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



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn