2012-01-13 4 views
0

Мне нужно вычесть число из другого числа, но скрипт должен убедиться, что это возможно, без указания отрицательного числа.Вычитание PHP

Например, кредит клиента составляет 5,00 долларов США. Они хотят сделать покупку в размере 20 долларов США, теперь они отстают на 15 долларов, поэтому они не могут совершить покупку. Теперь он должен перенаправить их на страницу (фонды неимущих).

ответ

8
$toBill = 20.0; 
$myMoney = 5.0; 

if($myMoney >= $toBill) 
{ 
    // process 
    $myMoney -= $toBill; 
} 
else 
{ 
    // error 
    header('Location: /error_nsf/'); 
    exit; 
} 

EDIT: Этот вопрос орет, что вы не достаточно изучили основы. Вы должны прочитать о конструкциях и условных единицах потока и тому подобное, такие вещи станут намного проще, если вы это сделаете.

1

Это основное условное,

$balance = 5.00; 
$debit = 20.00; 
if ($debit > $balance) { 
    // handle the error 
} else { 
    $balance -= $debit; 
} 
+1

Завышение условного ИМО. – webnoob

+0

@webnoob: как бы вы это сделали? – nico

+0

@nico: Я считаю, что до его редактирования он вычитал и, возможно, назначил внутри оператора 'if'. Эта версия намного проще, хотя и копия того, что я написал. – Josh

1
$toBill = 20.0; 
$myMoney = 5.0; 

$myMoney = $toBill <= $myMoney ? $myMoney - $toBill : header('Location: insuficcientFunds.php'); 
+1

Правильно? Да. Путь чрезмерно сложный, чтобы ожидать, что OP будет понимать тройные операции, когда они не знают базового 'if'? Да. – Josh

+1

@Josh - Это правильное решение IMO, но я согласен, что OP это сложнее. – webnoob

+0

Это сложнее, но для простой переадресации я думаю, что это более читаемо, тогда if-else cosntructs. –

1

Другим решением было бы использовать функцию, которая проверяет, является ли покупка действительна, в отношении к стоимости кредита, например, так:

function purchaseIsValid($purchaseValue, $creditValue) 
{ 
    return ($purchaseValue <= $creditValue); // returns true or false 
} 

И затем в вашем основном приложении сделайте что-то вроде предложенного:

$purchase = 20.0; 
$credit = 5.0; 
if(purchaseIsValid($purchase, $credit)) 
{ 
    // process 
} 
else 
{ 
    // error 
} 

Отличный день!

Смежные вопросы