Dan-Levi Skrevet 30. mars 2014 Del Skrevet 30. mars 2014 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
etse Skrevet 30. mars 2014 Del Skrevet 30. mars 2014 parantesfeil, prøv med følgende: if (!($balance < $loan)) { 1 Lenke til kommentar
Dan-Levi Skrevet 31. mars 2014 Forfatter Del Skrevet 31. mars 2014 parantesfeil, prøv med følgende: if (!($balance < $loan)) { Herre min hatt Takk! Lenke til kommentar
Lycantrophe Skrevet 31. mars 2014 Del Skrevet 31. mars 2014 (endret) 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 31. mars 2014 av Lycantrophe Lenke til kommentar
hjahre Skrevet 31. mars 2014 Del Skrevet 31. mars 2014 (endret) Hvordan takler PHP logiske setninger som dette? !$balance < $loanJeg håper den negerer verdien til $balance (MAX_type - $balance) og sjekker om den er mindre enn $loan. Hvorfor bruker ikke trådstarter $balance >= $loaneventuelt $loan <= $balanceda det tross alt blir det samme som !($balance < $loan)EDIT: Tar forbehold om at både $balance og $loan er numeriske verdier Endret 31. mars 2014 av hjahre Lenke til kommentar
JimL Skrevet 24. april 2014 Del Skrevet 24. april 2014 Hvordan takler PHP logiske setninger som dette? !$balance < $loan !$balance < $loan = false < 5000 = true Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå