2012-01-13 2 views
0

다른 숫자에서 숫자를 뺄 필요가 있지만 스크립트는 음수를 지정하지 않고 이것이 가능하다는 것을 확인해야합니다.PHP 빼기

예를 들어, 고객의 크레딧은 $ 5.00입니다. 그들은 20 달러를 사고 싶어하는데, 이제는 15 달러가 부족하여 구매할 수 없습니다. 이제는 페이지로 리다이렉트해야합니다 (Insuffient funds).

답변

8
$toBill = 20.0; 
$myMoney = 5.0; 

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

편집 :이 질문은 당신이 충분히 기초를 배운 적이 있다는 비명. 당신은 흐름 구조와 조건문 등에 대해 읽어야합니다. 그렇게하면 훨씬 쉽게 될 것입니다. 이것은 기본 조건이다

1

,

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

조건부 IMO가 복잡해집니다. – 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

맞습니까? 예. 운영자가 기본 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 
} 

멋진 하루 되세요!