前提・実現したいこと
PHPで12以上の自然数を、コマンドライン引数から、$a = $arvg[1];と受け取り、1~$aの個々の数字に対して処理を実行する、というプログラムを作っています。
コマンドライン引数を判定し、自然数以外の場合処理を止めたいです。
よろしくお願いします。
発生している問題・エラーメッセージ
コマンドラインで12以上の、整数ではない数(20.5など)を入力しても処理が実行される
該当のソースコード
PHP
1<?php 2 3$a = $argv[1]; 4 5function showNum(int $a) { 6 7 if ($a < 12) { 8 echo '12以上の自然数を入力してください' . PHP_EOL; 9 return; 10 } 11 12 if (is_int($a) === false) { 13 echo '12以上の自然数を入力してください' . PHP_EOL; 14 return; 15 } 16 17 for ($i = 1; $i <= $a; $i++) { 18 if ($i % 12 === 0) { 19 echo 'keypoint' . PHP_EOL; 20 } elseif ($i % 3 === 0) { 21 echo 'key' . PHP_EOL; 22 } elseif ($i % 4 === 0) { 23 echo 'point' . PHP_EOL; 24 } else { 25 echo $i . PHP_EOL; 26 } 27 } 28} 29 30showNum($a);
試したこと
if (is_int($a) == false) とする ⇒ 変わらず小数点以下があっても実行される
補足情報(FW/ツールのバージョンなど)
PHP 7.4.6
VScode
windows10
コマンドプロンプトで実行
回答2件
あなたの回答
tips
プレビュー