Gå til innhold

If else verdi større eller mindre.. forvirret!


Anbefalte innlegg

Hei,

 

Har en helt enkel statement som sjekker om en verdi er mindre enn en annen, men den fungerer ikke, noen som kan sjekke den raskt? Har sett meg helt blind på dette.

$balance = $wallet->balance(); //3000
$loan = $wallet->loan(); // 5000
if (!$balance < $loan) { //Burde jo være ganske rett frem...
	$wallet->updateBalance(Session::get('user'),$balance - 1000);
	$wallet->updateLoan(Session::get('user'),$loan - 1000);
	Redirect::to('bank.php');
} else {
	Redirect::to('bank.php');
}

Når jeg kjører denne så tar den vekk 1000 uansett om $balance er mindre. Hvis jeg fjerner utropstegnet redirekter den med en gang. Forstår virkelig ikke hva jeg gjør feil?

 

Her er hele scriptet.

<?php
require_once 'core/init.php';

if (Input::exists('get')) {

	if (Input::get('borrow')) {
		$wallet = new Wallet;
		if ($wallet->get(Session::get('user'))) {
			$balance = $wallet->balance();
			$loan = $wallet->loan();
			$wallet->updateBalance(Session::get('user'),$balance + 1000);
			$wallet->updateLoan(Session::get('user'),$loan + 1000);
			Redirect::to('bank.php');
		}

	} else if (Input::get('repay')) {
		$wallet = new Wallet;
		if ($wallet->get(Session::get('user'))) {
			$balance = $wallet->balance();
			$loan = $wallet->loan();
			if ($balance < $loan) {
				$wallet->updateBalance(Session::get('user'),$balance - 1000);
				$wallet->updateLoan(Session::get('user'),$loan - 1000);
				Redirect::to('bank.php');
			} else {
				Redirect::to('bank.php');
			}

		}
	} else {
		Redirect::to('bank.php');
	}

} else {
	Redirect::to('bank.php');
}

Alle redirects er midlertidig.. Setter stor pris på hjelp :)

Lenke til kommentar
Videoannonse
Annonse

dat if-else. Bidrar ikke akkurat til ryktet til php.

 

edit: før noen klager:

 

if (!Input::exists('get')) {
    Redirect::to( 'bank.php' );
}

$wallet = new Wallet;

if( Input::get( 'borrow' ) && $wallet->get( Session::get( 'user' ) ) ) {
    $balance = $wallet->balance();
    $loan = $wallet->loan();
    $wallet->updateBalance(Session::get('user'), $balance + 1000);
    $wallet->updateLoan(Session::get('user'), $loan + 1000);
    Redirect::to('bank.php');
}

if( Input::get( 'repay' ) ) {
    if( $!wallet->get( Session::get( 'user' ) ) ) {
        exit();
    }

    $balance = $wallet->balance();
    $load = wallet->loan();

    if( $balance < loan ) {
        Redirect::to( 'bank.php' );
    }

    $wallet->updateBalance( Session::get( 'user' ), $balance - 1000 );
    $wallet->updateLoan( Session::get( 'user' ), $loan - 1000 );
}
Med forbehold om at Redirect oppfører seg som return. Endret av Lycantrophe
Lenke til kommentar

Hvordan takler PHP logiske setninger som dette?

!$balance < $loan
Jeg håper den negerer verdien til $balance (MAX_type - $balance) og sjekker om den er mindre enn $loan.

Hvorfor bruker ikke trådstarter

$balance >= $loan
eventuelt

$loan <= $balance
da det tross alt blir det samme som

!($balance < $loan)
EDIT: Tar forbehold om at både $balance og $loan er numeriske verdier Endret av hjahre
Lenke til kommentar
  • 4 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...