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_callback()
function str2camel(string $str) {
$str = ucwords(str_replace('_', ' ', $str));
$str = str_replace(' ', '', $str);
return lcfirst($str);
}
echo str2camel('_oh_my_god'); // 输出 ohMyGod
本作品采用《CC 协议》,转载必须注明作者和本文链接
课代表来了,蛇形转驼峰