・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年6月21日に投稿されました。)
PHPで文頭の文字を小文字にする関数として、lcfirst()があります。
lcfirst()とは指定した文字列の最初の文字を小文字にする関数になります。
こちらの関数は文字列の先頭が半角のアルファベットでしたら大文字から小文字へと変換することができます。
しかし、全角のアルファベットや日本語は対応していませんので注意してください。
そして、lcfirst()は文字列だけでなく、配列の値も大文字から小文字へと変換することも可能です。
また、lcfirst()はうまく利用することで、strtolower()のように文字列全体を大文字から小文字へ変換することもできます。
今回はPHPのlcfirst()で文字列の最初の文字を小文字にする方法について紹介していきます。
lcfirst()とは
lcfirst()とは文字列の最初の文字を小文字にする関数となります。
最初の文字がアルファベットであれば、その文字を小文字にしてから文字列を返すようになります。
lcfirst()の書き方
lcfirst()の書き方は下記のようになります。
1 | <?php lcfirst('文頭を小文字にしたい文字列'); ?> |
lcfirst()は一つのパラメータを使用することで使用することができます。
lcfirst()のパラメータ
lcfirst()のパラメータは下記のようになります。
- 文頭を小文字にしたい文字列(必須)
小文字にしたい文字列を指定する
パラメータとして、文頭を小文字にしたい文字列を指定します。
しかし、日本語は小文字に変換できませんので注意してください。
lcfirst()で文字列の最初の文字を小文字にするサンプルコード
lcfirst()で文字列の最初の文字を小文字にするサンプルコードをご紹介します。
ここでは下記の3つの場合でlcfirst()を使用してみます。
- 文字列の最初の文字が半角である場合
- 文字列の最初の文字が全角である場合
- 文字列の最初の文字が日本語である場合
文字列の最初の文字が半角である場合
文字列の最初の文字が半角である場合に、lcfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha1 = 'ABCDFEGHIJKLMNOPQRSTUVWXYZ'; echo '変換前の文字列:'. $alpha1; $alpha1_small = lcfirst($alpha1); echo '変換後の文字列:'. $alpha_small; ?> |
実行結果
lcfirst()によって先頭のアルファベットが大文字から小文字に変換されています。
そのため、半角の「A」が「a」となって表示されています。
文字列の最初の文字が全角である場合
文字列の最初の文字が全角である場合に、lcfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; echo '変換前の文字列:'. $alpha2; $alpha2_small = lcfirst($alpha2); echo '変換後の文字列:'. $alpha2_small; ?> |
実行結果
lcfirst()を使用しましたが、先頭のアルファベットが大文字から小文字に変換されていません。
そのため、アルファベットでも全角の場合は変換されず返されるようになります。
文字列の最初の文字が日本語である場合
文字列の最初の文字が日本語である場合にlcfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $japanese = 'おはようございます。清々しい朝ですね。'; echo '変換前の文字列:'. $japanese; $japanese_small = lcfirst($japanese); echo '変換後の文字列:'. $japanese_small; ?> |
実行結果
日本語の場合は、小文字には変換できません。
配列の値にlcfirst()を使用した場合
配列の値にlcfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $array1 = ['A','B','C','D']; echo '配列:'; var_dump($array1); echo '変換後の配列の値:'.$array1[0]; $array1_val = lcfirst($array1[0]); echo '変換後の配列の値:'.$array1_val; $array2 = [ ['A','B'], ['C','D'] ]; echo '配列:'; var_dump($array2); echo '変換後の配列の値:'.$array2[0][1]; $array2_val = lcfirst($array2[0][1]); echo '変換後の配列の値:'.$array2_val; ?> |
実行結果
lcfirst()によって配列の値が、大文字から小文字に変換されています。
また、多次元配列の値も大文字から小文字へと変換することができます。
文字列全体を文字を小文字にする場合
冒頭でも言いましたが、lcfirst()は最初の文字を小文字にする関数になります。
しかし、下記のようにコードを記述すると、lcfirst()で文字列全体を小文字にすることができます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php $string = 'SOSSY'; echo '対象の文字列:'.$string; //方法1(変数格納なし) echo "・方法1:"; $string1 = ''; for($i = 0; $i <= 7; $i++) { $string1 = substr($string, $i, 1); $string1_small = lcfirst($string1); echo $string1_small; } //方法2(変数格納あり) echo "・方法2:"; $array1 = []; for($i = 0; $i <= 7; $i++) { $string2 = substr($string, $i, 1); $string2_small = lcfirst($string2); array_push($array1, $string2_small); } $array1_val = implode($array1); echo $array1_val; ?> |
実行結果
それぞれの方法の解説をします。
- substr()で文字列を1文字ずつ切りだし、切り出した文字をlcfirst()で小文字にして出力
- その処理をfor文で文字がなくなるまで繰り返す
- substr()で文字列を1文字ずつ切りだし、切り出した文字をlcfirst()で小文字にする
- 小文字にした文字をarray_push()使って配列の要素として格納する
- その処理をfor文で文字がなくなるまで繰り返す
- 配列の中にある要素をimplode()使って文字列として繋げ変数に格納し、出力する
これらの方法で文字列を小文字に変換することができます。
もし、substr()について詳しく知りたい場合は下記の記事をご参考ください。
しかし、lcfirst()とは別にとても簡単に文字列を一気に小文字に変換する関数が存在します。
それは、strtolower()関数です。
strtolower()とは、文字列全体を小文字に変換する関数であり、下記のコードのように記述すると、文字列全体を一気に小文字へ変換することができます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $string = 'SOSSY'; echo '対象の文字列:'.$string; $string_small = strtolower($string); echo 'strtolower()を使用した結果:'.$string_small; ?> |
実行結果
strtolower()によって、文字列全体を一気に小文字へ変換しています。
文字列の最初の文字を大文字にする場合
文字列の最初の文字を大文字にする場合は、ucfirst()を使用します。
ucfirst()は文字列の最初の文字を大文字にする関数となります。
そのため、lcfirst()とは対になる関数となります。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha3 = 'abcdefghijklmnopqrstuvwxyz'; echo '変換前の文字列:'. $alpha3; $alpha_big = ucfirst($alpha3); echo '変換後の文字列:'. $alpha_big; ?> |
実行結果
ucfirst()によって先頭のアルファベットが小文字から大文字に変換されています。
もし、ucfirst()について詳しく知りたい場合は下記の記事をご参考下さい。
まとめ
⚫︎ lcfirst()とは指定した文字列の最初の文字を小文字にする関数である
⚫︎ lcfirst()を使用するには1つのパラメータが必須となる
・ 文頭を小文字にしたい文字列(必須)
⚫︎ lcfirst()は、文字列の最初が半角である場合に大文字から小文字へ変換することができる
⚫︎ lcfirst()は、文字列の最初が全角である場合は大文字から小文字へ変換することができない
⚫︎ lcfirst()は、文字列の最初が日本語である場合は大文字から小文字へ変換することができない
(対応していない)
⚫︎ lcfirst()は、配列の値でも小文字へ変換することができる
(アルファベットの小文字に限る)
⚫︎ lcfirst()は、繰り返し処理と組み合わせることで文字列全体を小文字に変換することができる
(strtolower()を使用すると便利)
⚫︎ 文字列の最初の文字を大文字にする場合は、ucfirst()を使用する