本記事では、PHPで
関数の引数に指定された文字列に、数字だけが含まれているかどうかを確認できる、
ctype_digit関数の使い方を解説していく。
ctype_digit関数とは
ctype_digit関数は、
関数の引数に指定された文字列に、数字だけが含まれているかどうかを確認できる関数だ。
ctype_digit
boolean ctype_digit(string text)
与えられた文字列 text
のすべての文字が 数字であるかどうかを調べる。
数字だけであればTRUEを、数字以外が含まれていればFALSEを返す。
- 引数:text 調べる文字列。
- 返り値:textのすべての文字が数字だった場合に TRUE 、そうでない場合に FALSE
ctype_digit関数の使い方
ではctype_digit関数の使い方を具体例をもとに紹介する。
以下ctype_digit関数のサンプル
#ctype_digit関数の使用例
ctype_digit('43745') → TRUEをreturn
ctype_digit('abc76') → FALSEをreturn
ctype_digit('123.45') → FALSEをreturn
使い方と戻り値で特に難しい点はないと思う。
引数に渡した文字列に対し、数字だけかどうかの判定をし、結果(boolean)をreturnする。
ただし、以下ctype_ditit関数を使う上での注意点。
小数点などが含まれている場合もFALSEとなる。
ctype_digit関数では、引数 textの全ての文字が0~9である必要がある。
少数点付きの「123.45」などはFALSEになってしまう点は注意が必要である。
引数に指定した値が、数値か数値として有効な文字列かどうかを判別する場合には、 is_numeric() – 変数が数字または数値形式の文字列であるかを調べる
『数字または数値文字列の判別(is_numeric)』を使用すると良いだろう。
引数 text は「文字列」で渡す
引数は必ず文字列で渡すこと。公式マニュアルでも注意書きがしてある。
https://www.php.net/manual/ja/function.ctype-digit.php
警告
PHP 8.1.0 以降は、ctype関数 に文字列でない引数を渡すことは、推奨されなくなりました。将来のバージョンでは、引数は ASCII コードポイントではなく、文字列として解釈されるようになります。ユーザが意図する振る舞いによっては、引数を文字列にキャストするか、 chr() を明示的にコールすべきです。
関連記事
https://www.php.net/manual/ja/function.ctype-digit.php
- ctype_alnum() – 英数字かどうかを調べる
- ctype_xdigit() – 16 進数を表す文字かどうかを調べる
- is_numeric() – 変数が数字または数値形式の文字列であるかを調べる
- is_int() – 変数が整数型かどうかを検査する
- is_string() – 変数の型が文字列かどうかを調べる