[解決済み] 文字列がintであり、doubleなどでないことを確認するにはどうしたらよいですか?
2022-05-06 13:42:07
質問
PHPは
intval()
関数は、文字列を整数に変換します。しかし、文字列が整数であることを事前にチェックし、間違っている場合にはユーザーに親切なエラーメッセージを表示できるようにしたい。PHPには
is_int()
のような文字列の場合、false を返します。
"2"
.
PHPは
is_numeric()
関数がありますが、これは数値がdoubleであればtrueを返します。doubleの場合はfalseを返し、intの場合はtrueを返すようなものが欲しい。
などです。
my_is_int("2") == TRUE
my_is_int("2.1") == FALSE
解決方法は?
を使ってはどうでしょうか。
ctype_digit
?
マニュアルより
<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
}
?>
上記の例では、出力されます。
1820.20という文字列はすべての数字で構成されていない。 文字列10002はすべての数字で構成されている。 文字列 wsl!12 はすべての数字で構成されていない。
これは、入力が常に文字列である場合にのみ機能します。
$numeric_string = '42';
$integer = 42;
ctype_digit($numeric_string); // true
ctype_digit($integer); // false
入力が以下のようなタイプである場合
int
というように
ctype_digit
と
is_int
.
負の数が気になる場合は、入力に先行する
-
を呼び出し、もしそうなら
ctype_digit
を使用します。
substr
を入力文字列の こんな感じでいいんじゃないでしょうか。
function my_is_int($input) {
if ($input[0] == '-') {
return ctype_digit(substr($input, 1));
}
return ctype_digit($input);
}
関連
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] ある文字列が特定の単語を含んでいるかどうかを確認するにはどうすればよいですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】pdo - 非オブジェクトのメンバー関数prepare()への呼び出し【重複】。
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?