ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して、アンダースコアで区切られた名前付き文字列をキャメルケースの名前に変換し、アンダースコアの後の最初の文字を大文字に変更して、underscore_PHP チュートリアルをキャメルケースにします。

PHP を使用して、アンダースコアで区切られた名前付き文字列をキャメルケースの名前に変換し、アンダースコアの後の最初の文字を大文字に変更して、underscore_PHP チュートリアルをキャメルケースにします。

WBOY
WBOYオリジナル
2016-07-13 09:46:371052ブラウズ

PHPを使用して、アンダースコアで区切られた名前付き文字列をキャメルケースの名前に変換し、アンダースコアの後の最初の文字を大文字に変更し、アンダースコアをキャメルケースに変更します

最近のプロジェクトはsymfonyフレームワークを使用しており、このフレームワークのデータベース操作は次のとおりです。正直なところ、ORM を使用した場合の開発効率や運用効率は必ずしも高くありません。実際、そのエンティティの名前付けは、既存の ORM エンティティの属性の名前付けがキャメルケースであるとは限りません。データベース フィールドはアンダースコアで区切られ、フィールド マッピングのプロセスが作成されます。エンティティに必要な配列を手動で記述する必要がある場合、フィールド マッピングは頭痛の種です。特にフィールドが多数ある場合は、吐き気を催すほどです。この時点で、アンダースコアで区切られた名前付きフィールドをキャメルケースの名前付けに変換するという問題が発生します。私も非常に怠け者なので、長時間オンラインで検索しても、特定の PHP デモが見つかりませんでした。それらの一部は Java で書かれており、非常に複雑です。そこで私は自分で問題を解決し、そのうち 2 つを書きました。そのままコードを投稿しました。 リーリー

なぜ 2 つ書かなければならないのですか? 2 つの異なる処理方法があり、どちらがより効率的であるかを確認したいと思います。

テストの結果、文字列スプライシング方法は配列処理を使用するよりも 0.1 秒遅いことがわかりました。もちろん、これは各関数を 100,000 回実行した後にのみ確認できる結果であり、もちろん、その差は 10,000 回実行することもできます。 1 回後は無視できます。
以下はテスト結果です:
1K 回実行されました:
convertUnderline1: 実行時間 = 0.0050010681152344
convertUnderline2: 実行時間 = 0.0039999485015869

1w 回実行されました:

convertUnderline1: 実行時間 = 0.05500602722168
convertUnderline2: 実行時間 = 0.036003828048706

10w 回実行されました:

convertUnderline1: 実行時間 = 0.46304702758789
convertUnderline2: 実行時間 = 0.31903195381165

文字列のインターセプトと連結が配列の連結よりも遅いのはなぜですか? PHP C の最下層を見たことがあれば理解できるでしょう。そのため、将来的には、1 つの文字列に連結する必要がある文字列が多数ある場合は、ドット連結を使用せず、それらを配列に配置し、内分解連結を使用することになります。

もう 1 つ言っておきたいのは、このメソッドは JS でも機能するということです。配列連結は文字列連結ブロックよりも優れています。

http://www.bkjia.com/PHPjc/1031311.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1031311.html技術記事 PHP を使用して、アンダースコアで区切られた名前付き文字列をキャメルケースの名前に変換します。最近のプロジェクトでは symfony フレームワークを使用しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。