php if ifif операторская проблема - PullRequest
1 голос
/ 04 мая 2011

У меня есть очень простая php-программа, над которой я работаю для своего урока информатики, но у меня возникли небольшие проблемы с ней.

<?php
$numOfCards = '50'; //$_POST['numOfCards'];
$totalCost = 0.00;

if (numOfCards == '20')
{
$totalCost = $numOfCards*3.00;
}
else if (numOfCards == '50')
{
$totalCost = $numOfCards*2.50;
}
else
{
$totalCost = $numOfCards*2.00;
}

echo "<p>TOTAL COST FOR ".$numOfCards." CARDS: $".$totalCost."</p>";
?>

Как видите, я изначально получал свои $Значение numOfCards из данных поста, но оно установлено равным 50, чтобы доказать свою точку зрения.Проблема заключается в том, что этот код в том виде, в каком он есть, должен идти к оператору else if, но вместо этого он идет к оператору else.В результате итоговые затраты равны 100, а не 125.

Кто-нибудь знает, что я делаю неправильно?Спасибо

Ответы [ 4 ]

5 голосов
/ 04 мая 2011

У вас, похоже, дважды отсутствует $ в numOfCards.

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

error_reporting(-1);
ini_set('display_errors','On');

Тогдавы увидите два сообщения, объясняющих, что вместо сравнения с переменной (как вы хотели) вы сравниваете со строкой "numOfCards".

2 голосов
/ 04 мая 2011

Вы должны использовать $numOfCards вместо просто numOfCards.

Кроме того, вам следует отступ ваши блоки кода, желательно с 4 пробелами на уровень:

if ($numOfCards == '20') {
    $totalCost = $numOfCards*3.00;
}
else if ($numOfCards == '50') {
    $totalCost = $numOfCards*2.50;
}
else {
    $totalCost = $numOfCards*2.00;
}
0 голосов
/ 04 мая 2011

Да, вы пропустили знак $

Код должен быть

$numOfCards = '50'; 
//$_POST['numOfCards']; 
$totalCost = 0.00;  

if ($numOfCards  == '20') 
{     
  $totalCost = $numOfCards*3.00;     
} 
else if ($numOfCards  == '50') 
{     
  $totalCost = $numOfCards*2.50;     
} 
else 
{     
  $totalCost = $numOfCards*2.00;     
}  

echo "<p>TOTAL COST FOR ".$numOfCards." CARDS: $".$totalCost."</p>"; 
0 голосов
/ 04 мая 2011

Похоже, вам не хватает $ в именах переменных.

if (**$**numOfCards == '20')

http://ideone.com/Y89nu

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...