php 下划线转大写开头,使用PHP把下划线分隔定名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写...
$val) $str[$key] = ucfirst($val); if(!$ucfirst) $str[0] = strtolower($str[0]); return implode('' , $str);}//将下划线命名转换为驼峰式命名function convertUnderline3 ( $str , $ucfirst = true){ $str = ucwords(str_replace('_', ' ', $str)); $str = str_replace(' ','',lcfirst($str)); return $ucfirst ? ucfirst($str) : $str;}//将下划线命名转换为驼峰式命名function convertUnderline4 ( $str , $ucfirst = true){ $str = preg_replace('/_([A-Za-z])/e',"strtoupper('$1')",$str); return $ucfirst ? ucfirst($str) : $str;}//将下划线命名转换为驼峰式命名function convertUnderline5 ( $str , $ucfirst = true){ $str = preg_replace_callback('/([-_]+([a-z]{1}))/i',function($matches){ return strtoupper($matches[2]); },$str); return $ucfirst ? ucfirst($str) : $str;}$counts = 100000;//第1种方式调用10w次所需时间$s1 = microtime_float();for ($i=0;$i';//第2种方式调用10w次所需时间$s2 = microtime_float();for ($i=0;$i';//第3种方式调用10w次所需时间$s2 = microtime_float();for ($i=0;$i';//第4种方式调用10w次所需时间$s2 = microtime_float();for ($i=0;$i';//第5种方式调用10w次所需时间$s2 = microtime_float();for ($i=0;$i';
为什么我要写5个呢?不同的处理方式,我是想看看那个处理效率高。
经过测试发现,效率由高到低为 方法3>方法2>方法1>方法4>方法5 当然这是每个函数执行10w次才能看出的结果,当然1w次也能看出差别,1次就可以忽略不计了。
下面是测试结果:
执行1K次:
convertUnderline1: run time = 0.005000114440918
convertUnderline2: run time = 0.0040009021759033
convertUnderline3: run time = 0.0039999485015869
convertUnderline4: run time = 0.014001131057739
convertUnderline5: run time = 0.01600193977356
执行1w次:
convertUnderline1: run time = 0.056005954742432
convertUnderline2: run time = 0.033003091812134
convertUnderline3: run time = 0.028002977371216
convertUnderline4: run time = 0.14401507377625
convertUnderline5: run time = 0.13701295852661
执行10w次:
convertUnderline1: run time = 0.44704508781433
convertUnderline2: run time = 0.32203197479248
convertUnderline3: run time = 0.2670259475708
convertUnderline4: run time = 1.3601360321045
convertUnderline5: run time = 1.3231329917908
为什么字符串截取拼接要比数组连接慢呢?如果你看过PHP C的底层你就会明白了。所以以后如果有大量的字符串需要连接成一个字符串的 不要在用点连接了,放在一个数组后使用implode连接。
还有一个要说的,这样的方法同样在JS里也是,数组连接要比字符串连接块。
前面3个方法是我想出来的,后面的正则抄袭可爱的网友们的,不过我也是挺佩服的,算是温习了一下正则。
相关文章
相关视频
php 下划线转大写开头,使用PHP把下划线分隔定名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写...相关推荐
- php 下划线转大写开头,使用PHP把下划线分隔命名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写...
最近项目使用symfony框架,这个框架对数据库的操作在这个团队里使用的是ORM进行操作,说实话使用ORM的开发效率和运行效率不一定高多少,到是它的实体命名和现有数据库字段的命名不太一样,ORM实体属 ...
- PHP把下划线分隔命名的字符串 转换成驼峰式命名方式
<?php //微秒时间 function microtime_float() {list($usec, $sec) = explode(" ", microtime()); ...
- 匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法
1.匈牙利命名:开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写.For example: int iMyAge; "i"是int类型的缩写: c ...
- mfc编程淘汰了吗_四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)...
匈牙利命名法 匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物.那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所 ...
- springboot mybatis plus 关闭驼峰式命名转换为下划线
springboot mybatis plus 关闭驼峰式命名转换为下划线 报错信息是这样的: org.springframework.jdbc.BadSqlGrammarException: ### ...
- idea 下划线字段转驼峰_Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的...-Go语言中文社区...
其实通过逆向工程,然后去配置一些config,就可以实现,从Table到Model的相互转换,而且,对于下划线命名的Table字段,实现驼峰式命名的Model ,有时候我们只是做个测试,或者自己基于数 ...
- 将字符串转换成大写字母
将字符串转换成大写字母 TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了 ...
- 用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解)
用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解) 前言 原理 工具 步骤 延伸 博主联系方式 前言 本人喜欢收集各种优秀的视频,但是很多情况下我们看到的视 ...
- C语言中把小写字符串转换成大写用函数,一个容易的将小写字符串转换成大写的函数...
一个简单的将小写字符串转换成大写的函数 我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了. #include void uppers(char *Dest,char *Sour) { while ...
最新文章
- 英特尔王锐:软硬件并驾齐驱,开发者是真英雄
- Oracle 用数据泵导入导出数据
- itext 添加空格_借助 iText 用代码在 PDF 中创建空白签名域
- methodhandle_概览Java 7 MethodHandle及其用法
- 倒排索引、分词、同义词
- mysql 去重复屈居_mysql去重复关键字distinct的用法
- Oracle 20c 新特性:表达式参数值 Expressions Parameter Values
- 发力金融市场,中兴通讯有何硬实力?
- xp和win7右键新建选项排序
- 使用Cisco Packet Tracer进行网络模拟
- Modelsim下载安装【Verilog】
- 通用即插即用监视器驱动下载_驱动之家和驱动精灵哪个好
- 一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址
- 跟我一起走进内联汇编的世界
- 哪些股票自动交易接口好用呢?
- python counter怎么用_Counter的基本用法
- flutter小控件备忘
- 【办公自动化Excel】开发工具的使用
- 小学生html教程,小学.html
- 520,都来被虐吧。。。
热门文章
- barrett hand
- 同济大学博导陈明:解读中国制造2025
- 2021年3月15日:螺纹/橡胶合约 策略体验日记
- 五子棋爱好者必看!专业五子棋级位段位资格评定标准
- python对矩阵进行(-1/2)方
- [音乐] 《犬夜叉》主题曲 Misses beyond time - 穿越时空的思念
- vue3过渡和动画详解
- 三分迷糊,十分精明”── 认清股价的涨跌趋势才能成为股市高手
- NoSQLBooster for MongoDB延长-试用期
- Xenserver上连接NFS服务器时RPC:portmapperfailure;PRC:Unable to recieve