PHPで大文字・小文字の変換と、頭文字だけ大文字に変換する方法

投稿日: 作成:   更新:

PHPで大文字・小文字に変換するには、
 mb_strtoupper関数mb_strtolower関数ucwords関数
を使います。

  • 英字を大文字、小文字に変換してしたい

この内容について解説していきます。

私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
少しでも分かりやすく解説していきたいと思います。

これらの関数は、英字部分の変換ですので、日本語部分には影響しません。

それでは行きましょう!

mb_strtoupper関数(大文字変換)

大文字に変換するには、mb_strtoupper関数を使います。

次のソースコードでは、$valに入った「banana」を「BANANA」に大文字変換しています。

<?php

// 小文字「banana」が入った変数
$val = 'bananaは甘くて美味しい';

// 大文字に変換
echo mb_strtoupper($val);

?>

実行結果:

「BANANA」に大文字変換されました。

mb_strtolower関数(小文字変換)

小文字に変換するには、mb_strtolower関数を使います。

次に$valに入った「BANANA」を「banana」に小文字変換します。

<?php

// 大文字「BANANA」が入った変数
$val = 'BANANAは甘くて美味しい';

// 小文字に変換
echo mb_strtolower($val);

?>

実行結果:

「banana」に小文字変換することができました。

ucwords関数(頭文字だけ大文字変換)

頭文字を大文字にするには、ucwords関数を使用します。

「banana」を「Banana」に頭文字を大文字変換します。

<?php

// 小文字「banana」が入った変数
$val = 'bananaは甘くて美味しい';

// 頭文字だけ大文字に変換
echo ucwords($val);

?>

実行結果:

「Banana」に頭文字だけ大文字変換することができました。

「mb_・・・」の関数を使おう

mb_strtoupper、mb_strtolower関数について、他にも「strtoupper、strtolower」の関数があります。

何が違うのかといいますと「mb_」は値に日本語が入る関数かどうかが違います。
したがって「strtoupper、strtolower」を使うと日本語が文字化けする可能性があります

私が実際にPHP7.4.11では「strtoupper、strtolower」を使ってみても日本語文字化けしないようでしたが、PHPの古いバージョンだと文字化けするかもしれません。(未検証です・・)

特に意図していないのであれば、
「mb_strtoupper、mb_strtolower」関数を使用した方が無難です

※「mb_」の関数を日本語で使うには、php.iniで「mbstring.language = Japanese」などの設定が必要です。
php.iniの設定方法については、次の記事で解説しています。
「XAMPPの文字化け回避方法」

まとめ

PHPで大文字・小文字に変換する関数について解説しました。

  • mb_strtoupper関数(大文字変換)
  • mb_strtolower関数(小文字変換)
  • ucwords関数(頭文字だけ大文字変換)
  • 「mb_・・・」の関数を使おう(日本語が文字化けするから)

私の所感としては、実際にシステム開発をしていて、英字の大文字・小文字変換はあまり使う場面がないかと思います。

Java言語などでは「リフレクション機能」を使って、文字列からクラス名を指定して呼び出すときに、キャメルケース(頭文字を大文字)にする必要があります。
PHPでも文字列からクラス呼び出し機能はありますが、大文字・小文字の違いは判別しないようです。