【PHP8.x】ctype_upper関数の使い方

作成日: 更新日:

ctype_upper関数は、引数として渡された文字列に含まれるすべての文字が、大文字のアルファベットであるかどうかを確認し、その結果を真偽値で返す関数です。この関数は、主に文字列の内容を検証する目的で使用されます。

具体的には、検査対象の文字列が空ではなく、かつ構成されるすべての文字がAからZまでの範囲の大文字のアルファベットである場合にのみtrue(真)を返します。それ以外のケース、例えば文字列の中に小文字のアルファベット、数字、記号、スペース、あるいはその他の非アルファベット文字が一つでも含まれている場合、または文字列自体が空である場合には、false(偽)を返します。

システム開発において、ユーザーからの入力値が特定の形式、例えば全て大文字の識別子である必要がある場合などに、入力の正確性を検証するバリデーション処理で利用することができます。これにより、プログラムが想定するデータ形式を保証し、予期せぬエラーを防ぐことに貢献します。

基本的な使い方

構文(syntax)

<?php
// ctype_upper(string $text): bool
ctype_upper('YOUR_STRING');

引数(parameters)

mixed $text

  • mixed $text: チェックする文字列

戻り値(return)

bool

指定された文字列がすべて大文字のアルファベットで構成されている場合に true を返します。そうでなければ false を返します。

サンプルコード

ctype_upper関数で大文字チェックする

<?php

/**
 * ctype_upper() 関数の使用例
 *
 * ctype_upper() は、指定された文字列のすべての文字がアルファベットの大文字であるかどうかをチェックします。
 * 空文字列または非アルファベットの大文字でない文字が含まれる場合は false を返します。
 * この関数はロケールに依存せず、常にCロケールに従って動作します。
 */

// --- ctype_upper() の動作確認 ---

// 1. すべて大文字の文字列
$text1 = "HELLO";
echo "文字列: '" . $text1 . "' => ";
var_dump(ctype_upper($text1)); // 期待値: true

// 2. 小文字を含む文字列
$text2 = "Hello World";
echo "文字列: '" . $text2 . "' => ";
var_dump(ctype_upper($text2)); // 期待値: false

// 3. 数字を含む文字列
$text3 = "PHP84";
echo "文字列: '" . $text3 . "' => ";
var_dump(ctype_upper($text3)); // 期待値: false

// 4. 記号を含む文字列
$text4 = "UPPER!";
echo "文字列: '" . $text4 . "' => ";
var_dump(ctype_upper($text4)); // 期待値: false

// 5. 空文字列
$text5 = "";
echo "文字列: '" . $text5 . "' => ";
var_dump(ctype_upper($text5)); // 期待値: false (空文字列はfalseを返します)

// 6. Unicode文字(非ASCII文字)
// ctype_upper() は通常、ASCII文字の大文字のみを評価します。
// 日本語などのマルチバイト文字は、大文字として扱われません。
$text6 = "大文字";
echo "文字列: '" . $text6 . "' => ";
var_dump(ctype_upper($text6)); // 期待値: false

// 7. すべてが空白文字の文字列
$text7 = "   ";
echo "文字列: '" . $text7 . "' => ";
var_dump(ctype_upper($text7)); // 期待値: false (空白はアルファベットの大文字ではないため)

?>

PHPのctype_upper関数は、指定された文字列内のすべての文字がアルファベットの大文字であるかどうかを判定します。引数$textには検査したい文字列を渡します。この関数は、文字列内のすべての文字がASCII範囲のアルファベット大文字(AからZ)である場合にのみ、真偽値のtrueを返します。

文字列に一つでも小文字、数字、記号、空白文字、または日本語のような非ASCII文字が含まれている場合、戻り値はfalseになります。また、空文字列を指定した場合もfalseが返されますのでご注意ください。この関数はロケール設定に依存せず、常にCロケールに従って動作するため、ASCII文字以外の多言語の文字を大文字として判別する用途には向きません。文字列が厳密にすべて大文字で構成されているかを確認したい場合に、ctype_upper関数は役立ちます。

ctype_upper関数は、指定された文字列のすべての文字ASCIIコードのアルファベット大文字である場合にのみtrueを返します。

初心者が間違いやすい点として、空文字列小文字、数字、記号、空白文字、および日本語などのマルチバイト文字が一つでも含まれるとfalseとなります。

この関数はロケールに依存せず、ASCII文字の大文字判定に特化しているため、それ以外の文字が含まれる場合は意図した結果にならないことに注意が必要です。

【PHP8.x】ctype_upper関数の使い方 | いっしー@Webエンジニア