書いたコード
<?php
declare(strict_types=1);
class Common
{
public static function toPascal(string $string): string
{
return str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
}
}
?>
実行結果
echo Common::toPascal('hello_world') // => HelloWorld
このようにして、スネークケースからパスカルケースへの変換が出来ました。
実行結果を確認したい場合
このサイトを使うと手っ取り早いです。
コードの解説
-
declare(strict_types=1);
とは?- 厳格な型付けを行っています。
-
public
とは?- どの範囲からでもアクセス可能であることを示しています。
-
public
をつけることによって、他のクラスやファイルから呼び出すことができるようになります。
-
static
とは?- 簡単に言うと、クラスのインスタンスを生成することなしに、利用できるプロパティやメソッドのことです。
- すなわち、staticを用いるとインスタンスを生成しなくてもクラスのオブジェクトのアクセスが可能になります。
-
str_replace
とは?- 検索文字列に一致したすべての文字列を置換します。
-
ucwords
とは?- 文字列の各単語の最初の文字を大文字にします。
そして、
return str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
の部分でどこから実行されるのかが分かりにくいと思うので、そこについて説明します。
結論、指定されたコードの実行の順序は、内側から外側へ と進みます。
以下に、一行のコードの実行の手順を説明します。
-
str_replace('_', ' ', $string):
- まず、与えられた文字列 $string 内のアンダースコア _ を空白文字に置換します。
-
ucwords(str_replace('_', ' ', $string)):
- アンダースコアが空白文字に置換された結果の文字列に対して、ucwords 関数を適用します。これにより、文字列内の各単語の先頭文字が大文字に変換されます。
-
str_replace(' ', '', ucwords(str_replace('_', ' ', $string))):
- 先ほどの結果の文字列内の空白文字を削除します。