・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年6月21日に投稿されました。)
PHPでは文頭の文字を大文字にする関数として、ucfirst()があります。
ucfirst()とは指定した文字列の最初の文字を大文字にする関数であり、先頭が半角のアルファベットでしたら小文字から大文字へと変換することができます
しかし、全角のアルファベットや日本語は対応していませんので注意してください。
そして、ucfirst()は文字列だけでなく、配列の値も小文字から大文字へと変換することも可能です。
また、ucfirst()はfor文やwhile文のような繰り返し処理と組み合わせることで、strtoupper()のように文字列全体を小文字から大文字へと変換することもできます。
今回はPHPのucfirst()で文字列の最初の文字を大文字にする方法について紹介していきます。
ucfirst()とは
冒頭でも言いましたが、ucfirst()とは文字列の最初の文字を大文字にする関数となります。
最初の文字がアルファベットであれば、その文字を大文字にしてから文字列を返すようになります。
ucfirst()の書き方
ucfirst()の書き方は下記のようになります。
1 | <?php ucfirst('文頭を大文字にしたい文字列'); ?> |
ucfirst()は一つのパラメータを使用することで使用することができます。
ucfirst()のパラメータ
ucfirst()のパラメータは下記のようになります。
- 文頭を大文字にしたい文字列(必須):
大文字にしたい文字列を指定する
パラメータとして、文頭を大文字にしたい文字列を指定します。
しかし、小文字の日本語は大文字に変換できませんので注意してください。
ucfirst()で文字列の最初の文字を大文字にするサンプルコード
ucfirst()で文字列の最初の文字を大文字にするサンプルコードをご紹介します。
ここでは下記の3つの場合でucfirst()を使用してみます。
- 文字列の最初の文字が半角である場合
- 文字列の最初の文字が全角である場合
- 文字列の最初の文字が日本語である場合
文字列の最初の文字が半角である場合
文字列の最初の文字が半角である場合に、ucfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha1 = 'abcdefghijklmnopqrstuvwxyz'; echo '変換前の文字列:'. $alpha1."\n"; $alpha1_big = ucfirst($alpha1); echo '変換後の文字列:'. $alpha1_big; ?> |
実行結果
ucfirst()によって先頭のアルファベットが小文字から大文字に変換されています。
そのため、半角の「a」が「A」となって表示されています。
文字列の最初の文字が全角である場合
文字列の最初の文字が全角である場合に、ucfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha2 = 'abcdefghijklmnopqrstuvwxyz'; echo '変換前の文字列:'. $alpha2; $alpha2_big = ucfirst($alpha2); echo '変換後の文字列:'. $alpha2_big; ?> |
実行結果
ucfirst()を使用しましたが、先頭のアルファベットが小文字から大文字に変換されていません。
そのため、アルファベットでも全角の場合は変換されず返されるようになります。
文字列の最初の文字が日本語である場合
文字列の最初の文字が日本語である場合にucfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php //日本語全角の場合 $japanese1 = 'ぉはようございます。お元気ですか?'; echo '変換前の文字列:'. $japanese1."\n"; $japanese_big = ucfirst($japanese1); echo '変換後の文字列:'. $japanese_big."\n"; //日本語半角の場合 $japanese2 = 'ォハヨウゴザイマス。オゲンキデスカ?'; echo '変換前の文字列:'. $japanese2."\n"; $japanese_big2 = ucfirst($japanese2); echo '変換後の文字列:'. $japanese_big2;; ?> |
実行結果
日本語の場合は、全角であろうと半角であろうと小文字から大文字へと変換できません。
配列の値にucfirst()を使用した場合
配列の値にucfirst()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $array1 = ['w','x','y','z']; echo '配列:'; var_dump($array1); echo '変換後の配列の値:'.$array1[0]."\n"; $array1_val = ucfirst($array1[0]); echo '変換後の配列の値:'.$array1_val."\n"; $array2 = [ ['a','b','c'], ['x','y','z'] ]; echo '配列:'; var_dump($array2); echo '変換後の配列の値:'.$array2[1][2]."\n"; $array2_val = ucfirst($array2[1][2]); echo '変換後の配列の値:'.$array2_val; ?> |
実行結果
ucfirst()によって配列の値が、小文字から大文字に変換されています。
また、多次元配列の値も小文字から大文字へと変換することができます。
文字列全体を文字を大文字にする場合
冒頭でも言いましたが、ucfirst()は最初の文字を大文字にする関数になります。
そのため、下記のコードのように記述すると、ucfirst()で文字列全体を大文字にすることができます。
⚫︎ 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 25 26 27 28 29 30 31 | <?php $string = 'wordpress'; $length = strlen($string); echo '対象の文字列:'.$string; //方法1(変数格納なし) echo '・方法1:'; $string1 = ''; $num1 = 0; while($num1 <= $length) { $string1 = substr($string, $num1, 1); $string1_big = ucfirst($string1); $num1 = $num1 + 1; echo $string1_big; } //方法2(変数格納あり) echo '・方法2:'; $array1 = []; $num2 = 0; while($num2 <= $length) { $string2 = substr($string, $num2, 1); $string2_big = ucfirst($string2); array_push($array1, $string2_big); $num2 = $num2 + 1; } $array1_val = implode($array1); echo $array1_val; ?> |
実行結果
それぞれの方法の解説をします。
- substr()で文字列を1文字ずつ切りだし、切り出した文字をucfirst()で大文字にして出力
- その処理をwhile文で文字がなくなるまで繰り返す
(条件はstrlen()で取得した文字列の長さを計測)
- substr()で文字列を1文字ずつ切りだし、切り出した文字をucfirst()で大文字にする
- 大文字にした文字をarray_push()使って配列の要素として格納する
- その処理をwhile文で文字がなくなるまで繰り返す
- 配列の中にある要素をimplode()使って文字列として繋げ変数に格納し、出力する
これらの方法で文字列を大文字に変換することができます。
もし、substr()について詳しく知りたい場合は下記の記事をご参考ください。
しかし、ucfirst()とは別にとても簡単に文字列を一気に大文字に変換する関数が存在します。
それは、strtoupper()関数です。
strtoupper()とは、文字列全体を大文字に変換する関数であり、下記のコードのように記述すると、文字列全体を一気に大文字へ変換することができます。
⚫︎ index.php
1 2 3 4 5 6 | <?php $string = 'wordpress'; echo '対象の文字列:'.$string; $string_big = strtoupper($string); echo 'strtoupper()を使用した結果:'.$string_big; ?> |
実行結果
strtoupper()によって、文字列全体を一気に大文字へ変換しています。
文字列の最初の文字を小文字にする場合
文字列の最初の文字を小文字にする場合は、lcfirst()を使用します。
lcfirst()は文字列の最初の文字を小文字にする関数となります。
そのため、ucfirst()とは対になる関数となります。
⚫︎ index.php
1 2 3 4 5 6 | <?php $alpha3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; echo '変換前の文字列:'. $alpha3."\n"; $alpha_small = lcfirst($alpha3); echo '変換後の文字列:'. $alpha_small; ?> |
実行結果
lcfirst()によって先頭のアルファベットが大文字から小文字に変換されています。
もし、lcfirst()について詳しく知りたい場合は下記の記事をご参考下さい。
まとめ
⚫︎ ucfirst()とは指定した文字列の最初の文字を大文字にする関数である
⚫︎ ucfirst()を使用するには1つのパラメータが必須となる
・ 追加したい配列(必須)
⚫︎ ucfirst()は、文字列の最初が半角である場合に小文字から大文字へ変換することができる
⚫︎ ucfirst()は、文字列の最初が全角である場合は小文字から大文字へ変換することができない
⚫︎ ucfirst()は、文字列の最初が日本語である場合は半角全角であろうと小文字から大文字へ変換することができない
(日本語は対応していない)
⚫︎ ucfirst()は、配列の値でも大文字へ変換することができる
(しかし、アルファベットの小文字に限る)
⚫︎ ucfirst()は、繰り返し処理と組み合わせることで文字列全体を大文字に変換することができる
(strtoupper()を使用すると便利)
⚫︎ 文字列の最初の文字を小文字にする場合は、lcfirst()を使用する