0

我在 PHP 中有一个字符串,MY_NEW_CLASS我想将其转换为My_New_Class.

这是否可以使用 preg_replace 或者我应该爆炸下划线上的字符串,strtolower 它,ucfirst 它,然后将它内爆在一起?

感谢您提供的任何帮助。

4

2 回答 2

1

preg_replace我认为它本身并不能真正做到这一点,但回调并不难:

$str = preg_replace_callback('/(?<=\b|_)./',
                             function ($m) { return strtoupper($m[0]); },
                             strtolower($str));
于 2012-04-12T10:33:00.503 回答
0

为什么使用正则表达式?

function camelize( $string ){

    return strtoupper( $string{0} ) . strtolower( substr( $string, 1 ) );

}

function camelizeClass( $class ){

    $parts = explode( '_', $class );
    array_walk( $parts, function( &$value, $key ){
        $value = camelize( $value );
    });
    return implode( '_', $parts );

}

echo camelizeClass( 'MY_NEW_CLASS' ); // My_New_Class
于 2012-04-12T10:33:08.400 回答