ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して、アンダースコアで区切られた名前付き文字列をキャメルケースの名前に変換し、アンダースコアの後の最初の文字を大文字に変更して、underscore_PHP チュートリアルをキャメルケースにします。
最近のプロジェクトはsymfonyフレームワークを使用しており、このフレームワークのデータベース操作は次のとおりです。正直なところ、ORM を使用した場合の開発効率や運用効率は必ずしも高くありません。実際、そのエンティティの名前付けは、既存の ORM エンティティの属性の名前付けがキャメルケースであるとは限りません。データベース フィールドはアンダースコアで区切られ、フィールド マッピングのプロセスが作成されます。エンティティに必要な配列を手動で記述する必要がある場合、フィールド マッピングは頭痛の種です。特にフィールドが多数ある場合は、吐き気を催すほどです。この時点で、アンダースコアで区切られた名前付きフィールドをキャメルケースの名前付けに変換するという問題が発生します。私も非常に怠け者なので、長時間オンラインで検索しても、特定の PHP デモが見つかりませんでした。それらの一部は Java で書かれており、非常に複雑です。そこで私は自分で問題を解決し、そのうち 2 つを書きました。そのままコードを投稿しました。 リーリー
なぜ 2 つ書かなければならないのですか? 2 つの異なる処理方法があり、どちらがより効率的であるかを確認したいと思います。
テストの結果、文字列スプライシング方法は配列処理を使用するよりも 0.1 秒遅いことがわかりました。もちろん、これは各関数を 100,000 回実行した後にのみ確認できる結果であり、もちろん、その差は 10,000 回実行することもできます。 1 回後は無視できます。
以下はテスト結果です:
1K 回実行されました:
convertUnderline1: 実行時間 = 0.0050010681152344
convertUnderline2: 実行時間 = 0.0039999485015869
convertUnderline1: 実行時間 = 0.05500602722168
convertUnderline2: 実行時間 = 0.036003828048706
convertUnderline1: 実行時間 = 0.46304702758789
convertUnderline2: 実行時間 = 0.31903195381165
もう 1 つ言っておきたいのは、このメソッドは JS でも機能するということです。配列連結は文字列連結ブロックよりも優れています。