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 に答える