PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP】ダッシュ区切りの文字列をキャメルケースに変換する方法

PHPでハイフン(ダッシュ)区切りの文字列をキャメルケースに変換する方法を紹介します。正規表現やコールバック関数を使う必要はなく、ucwords 関数だけでシンプルに実装できるのがポイントです。

入力例と出力例

  • 入力例:this-is-a-test-string
  • 出力例:thisIsATestString

基本的な実装方法

まずは基本となるコードです。ハイフンをスペースに置き換えて ucwords で各単語の先頭を大文字化し、その後スペースを削除することでキャメルケースを作成しています。

function dashToCamelCase($string, $capitalizeFirstCharacter = false) {
    $str = str_replace(' ', '', ucwords(str_replace('-', ' ', $string)));
    if (!$capitalizeFirstCharacter) {
        $str[0] = strtolower($str[0]);
    }
    return $str;
}
echo dashToCamelCase('this-is-a-string');

第2引数の $capitalizeFirstCharactertrue にすると、先頭の文字も大文字になります(パスカルケース)。デフォルトは false なので、通常は先頭が小文字のキャメルケースが返されます。

PHP 5.3以降での簡潔な書き方

PHP 5.3以降では、ucwords の第2引数に区切り文字を直接指定できるため、コードがよりすっきりします。

function dashToCamelCase($string, $capitalizeFirstCharacter = false) {
    $str = str_replace('-', '', ucwords($string, '-'));
    if (!$capitalizeFirstCharacter) {
        $str = lcfirst($str);
    }
    return $str;
}
echo dashToCamelCase('this-is-a-test-string');

ポイント:lcfirst の活用

先頭の1文字だけを小文字にしたい場合は、strtolower の代わりに lcfirst 関数を使います。lcfirst は文字列の最初の1文字のみを小文字化するため、文字列全体に影響を与えず、意図した通りのキャメルケース変換が可能です。

  1. PHPの配列をJavaScriptで使う方法|json_encode()による変換手順を解説

    PHPで定義した配列は、そのままJavaScriptでも利用することができます。対応範囲は1次元配列にとどまらず、多次元配列(ネストされた配列)にも対応しています。変換を実現する鍵となるのが、PHPの json_encode() 関数です。この関数を使えば、PHPの配列をJSON形式の文字列に変換でき、そのままJavaScriptの変数として扱えるようになります。サンプル:PHPの配列を用意するまず、変換元となるPHPの配列を定義します。ここでは、名前とメールアドレスを持つシンプルな配列を例にします。$myArr = array(Amit, amit@example.com);PHP配列をJa

  2. PHP変数「11:00 AM」をMySQLの時間形式に変換する方法

    PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2