美文网首页
PHP下划线风格和驼峰风格相互转换

PHP下划线风格和驼峰风格相互转换

作者: 彭槐 | 来源:发表于2019-08-27 12:00 被阅读0次

网上其实已经有很多这种方法了,今天在thinkphp源码中看到了他的实现,感觉还是很巧妙的,记录一下

<?php

/**
 * 下划线命名风格转换成驼峰命名风格
 * @param $string
 * @param bool $ucfirst 转换后首字母是否大写
 * @return mixed|string
 */
function parseCamel($string, $ucfirst = false)
{
    //替换过程 name_style => _s => s => S => nameStyle
    $string = preg_replace_callback('/_([a-zA-Z])/', function ($match) {
        return strtoupper($match[1]);
    }, $string);

    return $ucfirst ? ucfirst($string) : $string;
}

/**
 * 驼峰命名风格转换成下划线命名风格
 * @param $string
 * @return string
 */
function parseUnderline($string)
{
    //替换过程 NameStyle => N | S => _N | _S => _Name_Style => Name_Style => name_style
    $string = strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $string), "_"));

    return $string;
}

echo parseCamel('name_style') . "\n";                    //输出 nameStyle
echo parseCamel('name_style', true) . "\n";       //输出 NameStyle
echo parseUnderline('NameStyle') . "\n";                 //输出 name_style

相关文章

网友评论

      本文标题:PHP下划线风格和驼峰风格相互转换

      本文链接:https://www.haomeiwen.com/subject/xtnsectx.html