前提・実現したいこと
三角形の面積の引数チェックに関して質問です。
引数に任意の数字を与える際にいずれかの引数が空の時、または数字でないときはNULLを表示し、
上記ではない時は三角形の面積結果の数字を返す。この時の引数チェックで少し迷っています。
発生している問題・エラーメッセージ
$height, $widthを文字または空文字を入れる場合 NULL(画面上ではから表記)ではなく0と表記されてしまう。
該当のソースコード
ソースコード function triangle($h,$w){ $total = $h*$w/2; return $total; } $height = 100; $width = 50; $sum = triangle($height,$width); echo '三角形面積:' . $sum;
試したこと
triangle関数内に下記を試してみました。
1: is_numeric、is_null関数を使って条件分岐
if(!is_numeric($total) && !is_null($total)){
return null;
}else{
return $total;
}
2: preg_match関数を使って条件分岐
if (!preg_match('/\A[0-9]+\z/', $total)) {
return null;
} else {
return $total;
}
3:is_int関数を使って整数チェック
if(is_int($total)){
return $total;
}else{
return null;
}
追記:
上記、計算の合計値をバリデーションチェックしていた為、下記に変更。
if(is_numeric($h)){
if(is_numeric($w)){
$total = $h*$w/2;
return $total;
}else{
return NULL;
}
ご教示のほど宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー