我是靠谱客的博主 昏睡中心,最近开发中收集的这篇文章主要介绍PHP把下划线分隔命名的字符串转换成驼峰式命名方式(带10万次执行效率测试结果),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<?php
//微妙时间
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
 
//将下划线命名转换为驼峰式命名
function convertUnderline1 ( $str , $ucfirst = true)
{
    while(($pos = strpos($str , '_'))!==false)
        $str = substr($str , 0 , $pos).ucfirst(substr($str , $pos+1));
 
    return $ucfirst ? ucfirst($str) : $str;
}
 
//将下划线命名转换为驼峰式命名
function convertUnderline2 ( $str , $ucfirst = true)
{
    $str = explode('_' , $str);
    foreach($str as $key=>$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<$counts;$i++)
{
    $str= 'abcd_efgh_igk_lmn';
    convertUnderline1($str);
}
$e1 = microtime_float();
echo 'convertUnderline1: run time = ';
echo $e1-$s1;echo '<br />';
 
//第2种方式调用10w次所需时间
$s2 = microtime_float();
for ($i=0;$i<$counts;$i++)
{
    $str= 'abcd_efgh_igk_lmn';
    convertUnderline2($str);
}
$e2 = microtime_float();
echo 'convertUnderline2: run time = ';
echo $e2-$s2;echo '<br />';
 
//第3种方式调用10w次所需时间
$s2 = microtime_float();
for ($i=0;$i<$counts;$i++)
{
    $str= 'abcd_efgh_igk_lmn';
    convertUnderline3($str);
}
$e2 = microtime_float();
echo 'convertUnderline3: run time = ';
echo $e2-$s2;echo '<br />';
 
//第4种方式调用10w次所需时间
$s2 = microtime_float();
for ($i=0;$i<$counts;$i++)
{
    $str= 'abcd_efgh_igk_lmn';
    convertUnderline4($str);
}
$e2 = microtime_float();
echo 'convertUnderline4: run time = ';
echo $e2-$s2;echo '<br />';
 
//第5种方式调用10w次所需时间
$s2 = microtime_float();
for ($i=0;$i<$counts;$i++)
{
    $str= 'abcd_efgh_igk_lmn';
    convertUnderline4($str);
}
$e2 = microtime_float();
echo 'convertUnderline5: run time = ';
echo $e2-$s2;echo '<br />';

经过测试发现,效率由高到低为   方法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把下划线分隔命名的字符串转换成驼峰式命名方式(带10万次执行效率测试结果)的全部内容,希望文章能够帮你解决PHP把下划线分隔命名的字符串转换成驼峰式命名方式(带10万次执行效率测试结果)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部