2016-10-11 5 views
0

私はPHPスキルの拡張に取り組んでいます。ボリュームを計算し、すべての数値が0から20までであることを確認する簡単なプログラムを作成しようとしていますが、プログラムに不正な番号を認識させる。エラーチェックPHP

<?php 

//read deep end 
$deepEnd = $_POST['deepEnd']; 

//read shallow end 
$shallowEnd = $_POST['shallowEnd']; 

    //read length 
$length = $_POST['length']; 

//read width 
$width = $_POST['width']; 

$flag = false; 
$min = 0; 
$max = 20; 

if($deepEnd < $min && $deepEnd > $max){ 
     $flag = true; 
} 
if($shallowEnd < $min && $shallowEnd > $max){ 
     $flag = true; 
    } 
if($length < $min && $length > $max){ 
     $flag = true; 
} 
if($width < $min && $width > $max){ 
     $flag = true; 
} 

$volume = 0.5*($deepEnd+$shallowEnd)*$length*$width*7.5; 

echo "<h2>Volume Calculator</h2>"; 

if($flag == 'true'){ 
     echo "<p>Incorrect value input. Please enter 0-20.</p>\n"; 
} else { 
     echo "<p>Your volume is: ".$volume." gallons.</p>\n"; 
} 
?> 

自分の入力は自分のHTMLプログラムから取得されています。 <input type='number'>私はなぜ私のif文が正しく解釈していないのか混乱しています。それは$min以上$maxより小さい場合

答えて

1

あなたは、各変数を比較しています。 $min$maxより大きい場合を除き、コードは機能しません。

例:

$min = 0; 
$max = 10; 
$x = 5; 
if ($x < $min && $x > $max) { // this will always evaluate as false 
    // won't execute here 
} 

値は$minまたは$maxの範囲外であるかどうかを確認することで、あなたの問題を解決するには、あなたは||演算子を使用する必要があります。

例:

$min = 0; 
$max = 10; 
$x = -5; 
if ($x < $min || $x > $max) { // true 
    // do something 
} 
+0

これは私が探したいものではありませんか?これらの変数が最小値と最大値の範囲外でないことを確認する必要があります。 – WegnerLJ26

+0

@WagsPG **詳細**で問題を説明してください。例を挙げてください。 –

+0

OH!私は||を使う必要があるそれを動作させるには? – WegnerLJ26

0

最初のチェックでは、あなたのロジックが間違っている私には思える: - $のdeependが分未満の場合

if($deepEnd < $min && $deepEnd > $max){ 
     $flag = true; 
} 

これが唯一のエラーが返されますし、実際には起こり得ない最大値を超えて、コードをテストしてください: -

if($deepEnd < $min OR $deepEnd > $max){ 
     $flag = true; 
} 

私のために働いた

関連する問題