preg_replace 与 preg_replace_callback 解决字符串的蛇形、驼峰形互转问题

function str2snake(string $str) {
    $snake = preg_replace('/([A-Z])/', '_${1}', $str);
    return ltrim(strtolower($snake), '_');
}

echo str2snake('OhMyGod'); // 输出 oh_my_god
function str2camel(string $str) {
    $cb = function($s) {
        return strtoupper(ltrim($s[0], '_'));
    };
    $str = preg_replace_callback('/(_\w)/', $cb, $str);
    return lcfirst($str);
}

echo str2camel('_oh_my_god'); // 输出 ohMyGod

上面的麻烦了,因为现成的轮子早就造好了

preg_replace 与 preg_replace_callback 解决字符串的蛇形、驼峰形互转问题

看了一下源码,原来蛇形转驼峰的写法相当简单!根本就不需要 preg_replace_callback()

function str2camel(string $str) {
    $str = ucwords(str_replace('_', ' ', $str));
    $str = str_replace(' ', '', $str);
    return lcfirst($str);
}

echo str2camel('_oh_my_god');  // 输出 ohMyGod
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

课代表来了,蛇形转驼峰

$str = 'oh_my_god';
$str = ucwords(str_replace('_', ' ', $str));
var_dump($str);
$str = str_replace(' ', '', $str);
var_dump($str);
$str = lcfirst($str);
var_dump($str);
string(9) "Oh My God"
string(7) "OhMyGod"
string(7) "ohMyGod"
1年前 评论
zhaiduting (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
63
粉丝
17
喜欢
140
收藏
118
排名:132
访问:7.4 万
私信
所有博文
社区赞助商