在php里当需要判断一个字符串长度时,我们首先想到的是strlen()函数,不错,strlen()返回的就是字符串的长度,这样使用没有任何问题。不过,如果要从php程序优化的角度来看,使用strlen()判断字符串长度未免是最好的写法

有经验的程序员发现,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。

即:

代码如下:$str = ‘aaaaaa';

if(strlen($str) > 6)

VS

if(!isset($str{6})

用例子简单测试下,情况基本属实,isset()效率几乎是strlen()的3倍。

示例:

代码如下:<?php

//使用strlen方式

$arr = "123456";

$sTime =

microtime

(1);

if(strlen($arr) > 6){

// echo 1;

}

echo microtime(1) - $sTime;

输出:0.00035595893859863

代码如下:<?php

//使用isset($arr{})方式

$arr = "123456";

$sTime = microtime(1);

if(!isset($arr{6})){

// echo "1\r\n";

}

echo microtime(1) - $sTime;

输出:0.00019097328186035

isset()速度为什么比strlen()更快strlen()函数函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。

在某些情况下,使用isset() 技巧可以加速执行你的代码。因为与isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。

因此调用isset()比strlen()快。

php 字符串长度判断_php 字符串长度判断更高效的方法相关推荐

  1. Java黑皮书课后题第7章:*7.6(修改程序清单5-15)程序清单5-15通过检验2、3、4…n/2是否是数n的因子来判断n是否为素数。判断n是否素数的更高效的方法是检验小于等于根n的素数是否有n整

    *7.6(修改程序清单5-15)程序清单5-15通过检验2.3.4-n/2是否是数n的因子来判断n是否为素数.判断n是否素数的更高效的方法改写5-15 题目 题目描述 破题 程序清单5-15(非本题代 ...

  2. php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数

    PHP 字符串获取 用于从字符串中获取指定字符串. 相关函数如下: substr():从字符串中获取其中的一部分 strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结 ...

  3. php 字符串函数 教程_php字符串函数 str类常见用法示例

    本文实例讲述了php字符串函数 str类常见用法.分享给大家供大家参考,具体如下: str_split(string, leg);//将一个字符 串转换为数组,参数1:要被转换的字符串,参数2:每 段 ...

  4. php 字符串函数 教程_php字符串函数_PHP教程

    addslashes: 字符串加入斜线. bin2hex: 二进位转成十六进位. chop: 去除连续空白. chr: 返回序数值的字符. chunk_split: 将字符串分成小段. convert ...

  5. php 数组格式的字符串转为数组_PHP 字符串转数组 | 剑花烟雨江南

    在开发过程中,我们经常遇到需要将字符串转为数组的情况.PHP内置了explode函数,可以将字符串按特定的分解符分割成数组. explode函数可以传入三个参数: 分隔符(必填),字符串(必填),数组 ...

  6. java 字符长度 中文_java判断中文字符串长度的简单实例

    话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...

  7. c语言字符串中取最大字符串,使用C语言提取子字符串及判断对称子字符串最大长度...

    先来看一个使用C语言从字符串中提取子字符串的基本方法总结: #include /*处理中文字符*/ /*遍历字符串,非ASCII字符读取2个字节,ASCII读取一个字节,获取字符串长度*/ int S ...

  8. 判断html()中有长度,VBS 字符串长度判断的问题

    对于给你一个字符串你应该怎样判断他的字符串长度,试举一些典型的例子C语言--字符串长度的计算方法提示:(1)计算字符串长度时关键是要注意辨认转义字符:(2)一个转义字符总是以反斜杠开始,再加一个其他字 ...

  9. html输入字符长度佛下一句,js如何判断输入字符串长度

    js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: js判断输入字符串长度(汉字算两个字符,字母数 ...

  10. java判断字符串长度_java判断中文字符串长度的简单实例

    /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static int length( ...

最新文章

  1. JAVA课上动手动脑问题2
  2. einsum,一个函数走天下
  3. Imc连环画《红楼梦》
  4. C#返回mysql查询结果_c#查询MySQL是怎么接收返回结果的
  5. 一个YII社区学习网站
  6. java swingworker_Java中的SwingWorker
  7. 湖南大学计算机网络实验,湖南大学《计算机网络》实验报告
  8. Snabbdom(虚拟dom-h函数)
  9. 重用之前应仔细分析问题---------用错轮子有感
  10. 王者荣耀交流协会 — Alpha阶段中间产物
  11. Python 中 jieba 库
  12. 物理路径,相对路径,绝对路径以及根目录
  13. 软件安利Macs Fan Control Pro Mac(风扇转速调整及温度监控工具)
  14. java实现二维码扫码下载APP
  15. 【微信小程序系列】小程序简单连接后端数据库完整示例(附免费下载的源码)(Servlet)
  16. Android facebook KeyHash生成(生成发布密钥散列)
  17. 如何调试Excel VBA代码
  18. 【Golang画图】2D渲染绘图库gg的概念与用法详解(一)
  19. 基于Java的学生在线选课系统设计与实现
  20. 图像处理+帧差法实现对车辆的识别框选

热门文章

  1. 百度贴吧界面html程序代码,如何把自己的网址转换为百度贴吧网址?
  2. pywifi 模块的安装
  3. 蓝桥杯省赛2015年——奇妙的数字
  4. Ext2.0的EditorGridPanel
  5. 天堂2单机启动不了mysql_天堂2第8章单机版启动问题
  6. Solr全文检索学习笔记·记录
  7. 高中数学建模优秀论文_高中数学建模优秀论文
  8. 最简单的WIN7内核PE系统(U盘,硬盘,移动硬盘版支持原版WIN7安装
  9. php日历表代码,PHP实现的简单日历代码_php
  10. 自己做的商城系统流程图,分享给大家.