php 性能优化:使用 isset() 判断字符串长度速度比 strlen() 更快

学习笔记 马富天 2016-11-19 12:25:02 78 0

【摘要】php中如何判断字符串的长度?很多人第一想到的应该就是 strlen() mb_strlen() 这些函数了。但是从程序性能上来讲,这两个函数在判断字符串长度的过程中都不是最佳的,虽然他们是专业级的检测字符串长度的函数。

通过本人实践总结,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。

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

strlen()函数函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化、哈希查找,会跟随被调用的函数一起执行。因此在某些情况下,合理使用isset()可以加速你的程序。因为isset()是一种语言结构,它的执行不需要函数查找和字母小写化等。

具体通过 isset() 和 strlen() 判断字符串长度示例如下:

  1. function get_microtime()
  2. {
  3.     list($usec,$sec) = explode(" ",microtime());
  4.     return ((float)$sec + (float)$usec);
  5. }
  6. $begin = get_microtime();
  7. if(strlen($str) < 25)
  8. {
  9. 	echo "未满25";
  10. }
  11. $end = get_microtime();
  12. var_dump($end -$begin);	
  13. $begin = get_microtime();
  14. if(!isset($str{24}))
  15. {
  16. 	echo "未满25";
  17. }
  18. $end = get_microtime();
  19. var_dump($end -$begin);

执行时间在一定程度上 strlen() 的时间长。

版权归 马富天PHP博客 所有

本文标题:《php 性能优化:使用 isset() 判断字符串长度速度比 strlen() 更快》

本文链接地址:http://www.mafutian.net/230.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

1

0

上一篇《 PHP array_push() 与 $arr[]=$value 性能比较 》 下一篇《 PHP 将相对路径转成绝对路径【正则表达式处理】 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码