2016-10-11 105 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語句沒有正確解釋它。

回答

1

你每個變量比較,如果超過$min超過$max。除非您的$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

哦!我需要使用||使其工作? – WegnerLJ26

0

在我看來,你的邏輯是錯誤的,在第一次檢查: -

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

如果$ deepend小於分鐘,這樣只會返回錯誤測試您的代碼: -

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

對我有用