2014-10-10 3 views
-1

я делаю что-то здесь не так, то возвращаемое значение не является правильным, просто возвращает еще часть ..Php Если еще Постулаты

я хочу, чтобы проверить значение входного сигнала больше или равно и меньше или равно как условие показа ниже, это правильный способ сделать это, или я делаю неправильно ...

$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

if ($tornadoball <= 20 && $tornadoball >= 29): { 
    $tornadoScore = 0.25; 
} 

elseif ($tornadoball <= 30 && $tornadoball >= 34): { 
    $tornadoScore = 0.50; 
} 

elseif ($tornadoball <= 35 && $tornadoball >= 39): { 
    $tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40): { 
    $tornadoScore = 1.00; 
} 

else: { 
    echo " Value"; 
} 

endif; 

$tornadoVal == floatval($tornadoScore); 

echo $tornadoVal; 
+2

«это правильный путь» - - работает ли так, как вы ожидаете? – zerkms

+0

Потерять символы двоеточия (':'). Ваши условные выражения должны выглядеть так: if (condition) {statement} elseif (condition) {statement} ' – Phil

+0

Включить error_reporting в php.ini, а затем исправить синтаксис. – mario

ответ

3

Может быть, вы имеете в виду >= min и <= max, (в посредниках):

$tornadoball = 22; 
$tornadoScore = 0; 

if($tornadoball >= 20 && $tornadoball <= 29) { // if this number is in between 20 to 29 
    $tornadoScore = 0.25; 
} 
elseif($tornadoball >= 30 && $tornadoball <= 34) { // if this number is in between 30 to 34 
    $tornadoScore = 0.50; 
} 
elseif($tornadoball >= 35 && $tornadoball <= 39) { // if this number is in between 35 to 39 
    $tornadoScore = 0.75; 
} 
elseif($tornadoball >= 40) { // if this number is greater than 40 
    $tornadoScore = 1.00; 
} 
else { 
    echo 'did not meet any criteria'; 
} 

var_dump($tornadoScore); 
+0

Почему downvote? – Phil

+0

@Phil, потому что он не написан на C предположительно – zerkms

+0

Эй @Филл. Я случайно проголосовал за это. (Я с тех пор убрал его). Также zerkms. Предположительно, означает, что у вас есть фактический, можно сказать, эмпирические доказательства того, что что-то истинно. В этом случае вы предполагали, что это было отклонено, потому что оно не написано на C. У вас не было доказательств вашей интуиции.Правильное слово для использования в этом случае было бы некоторым деривацией «предположим» –

1

Вам не нужно писать : или endif;!

Это должно работать:

<?php 
    $tornadoball = 22; 
    $tornadoVal = ""; 
    $tornadoScore = ""; 

    if ($tornadoball <= 20 && $tornadoball >= 29) 
    { 
     $tornadoScore = 0.25; 
    } 
    elseif ($tornadoball <= 30 && $tornadoball >= 34) 
    { 
     $tornadoScore = 0.50; 

    } 
    elseif ($tornadoball <= 35 && $tornadoball >= 39) 
    { 
     $tornadoScore = 0.75; 

    } 
    elseif ($tornadoball >= 40) 
    { 
     $tornadoScore = 1.00; 
    } 
    else 
    { 
     echo " Value"; 
    } 

    $tornadoVal == floatval($tornadoScore); 

    echo $tornadoVal; 

?> 
+1

Плохая идея советовать новичку пропустить '{' и '}' – zerkms

1

измените эту строку кода

if ($tornadoball <= 20 && $tornadoball >= 29): 

к этому

if ($tornadoball <= 20 && $tornadoball >= 29) 

удалить двоеточие и удалить

endif; 
1

Попробуйте это и ** читать комментарий в ответ поп колодце

ВторогоБольшинства вашего состояния будет никогда выполняться. Поэтому я изменил их взглянуть

<?php $tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 
//Below if condition is wrong 
if ($tornadoball >= 20 && $tornadoball <= 29): { 
$tornadoScore = 0.25; 
} 

elseif ($tornadoball >= 30 && $tornadoball <= 34): { 
$tornadoScore = 0.50; 
} 

elseif ($tornadoball >= 35 && $tornadoball <= 39): { 
$tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40): { 
$tornadoScore = 1.00; 
} 

else: { 
echo " Value"; 
} 

endif; 

$tornadoVal = floatval($tornadoScore); 
//You got two equal, two equal are comparistion operator 
//use one equal. Thats assignment operator 

echo $tornadoVal; 
1

Привет Пожалуйста, свяжитесь с ниже code..Is это то, что вы ожидаете выход ..

$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

if (($tornadoball <= 20) || ($tornadoball >= 29)) 
{ 
    $tornadoScore = 0.25; 
} 

else if (($tornadoball <= 30) ||($tornadoball >= 34)) 
{ 
    $tornadoScore = 0.50; 
} 

else if (($tornadoball <= 35) || ($tornadoball >= 39)) 
{ 
    $tornadoScore = 0.75; 
} 

else if ($tornadoball >= 40) 
{ 
    $tornadoScore = 1.00; 
} 

else 
{ 
    $tornadoScore= " Value"; 
} 


$tornadoVal = floatval($tornadoScore); 

echo $tornadoScore; 
+0

извините! не повезло, я думаю, вся моя логика может быть неправильной –

+0

Можете ли вы сказать мне, какое значение вы угадываете – Choco

1
<?php 

// initialization 
$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

//Below if condition is wrong 
if ($tornadoball >= 20 && $tornadoball <= 29) { 
$tornadoScore = 0.25; 
} 

elseif ($tornadoball <= 30 && $tornadoball >= 34) { 
$tornadoScore = 0.50; 
} 

elseif ($tornadoball <= 35 && $tornadoball >= 39) { 
$tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40) { 
$tornadoScore = 1.00; 
} 
else { 
// do nothing 
} 

echo "Score Value = " . $tornadoScore; 

$tornadoVal = floatval($tornadoScore); 
//You got two equal, two equal are comparistion operator 
//use one equal. Thats assignment operator 

echo "<br>"; 
echo "Tornado Value = " . $tornadoVal; 
?>