[PHP] キャメルケースとアンダースコア表記の相互変換

公開

スポンサーリンク

PHPで文字列をキャメルケースとスネークケース(アンダースコア区切り)で相互変換するコードのメモ。

キャメルケースからスネークケースへ

$before = "fooBar";
$agter = strtolower( preg_replace("/([A-Z])/u", "_$0", $before) );
echo $after;//foo_bar

文字列の先頭も大文字の場合は、substr()を使い先頭に付いてしまう余計なアンダーバーを削除する。

$before = "FooBar";
$after = strtolower( preg_replace("/([A-Z])/u", "_$0", $before) );//_foo_bar 
$after = substr( $after, 1 );
echo $after;//foo_bar

スネークケースからキャメルケース

$before = "foo_bar";
$parts = explode("_", $str );//アンダーバーで配列に分割

foreach( $parts as $part ){
  if( !isset( $after ) ){
    $after = $part;
  }else{
    $after .= ucfirst( $part );//先頭の文字を大文字に変換
  }
}
echo $after;//fooBar;

スポンサーリンク


Comment