j0achim Skrevet 25. august 2009 Skrevet 25. august 2009 (endret) Hei, Prøver å skrive en funksjon hvor jeg kan sette operator. eksempel på hva jeg prøver på: $foo = 100; $var = 200; $operator = "<"; if ($foo$operator$var) { echo "success"; } else { echo "failed"; } Jeg vet kode over ikke funker, noen som vet om det er en funksjon jeg kan slenge rundt $operator, eller en metode jeg kan gjøre dette? På forhånd takk. Endret 25. august 2009 av j0achim
j0achim Skrevet 25. august 2009 Forfatter Skrevet 25. august 2009 (endret) Lite eksempel på hvordan jeg har gjort det til nå: $foo = 100; $var = 200; $bar = "="; echo check($foo,$var,$bar); function check($foo,$var,$bar) { switch ($bar){ case "="; if ($foo==$var){ return 1;} case "!="; if ($foo!=$var){ return 1;} case "<"; if ($foo<$var){ return 1;} case ">"; if ($foo>$var){ return 1;} default; return 0; } } Endret 25. august 2009 av j0achim
Jonas Skrevet 25. august 2009 Skrevet 25. august 2009 (endret) Ta en kikk på eval, så blir det litt mer dynamisk. Edit: Jeg tenker noe allá slik. <?php $foo = 200; $bar = 100; var_dump ( DynamicOperator ( '>', $foo, $bar ) ); function DynamicOperator ( $operator, $arg1, $arg2 ) { $validOperators = array ( '==', '>=', '<=', '<', '>' ); if ( in_array ( $operator, $validOperators ) && is_int ( $arg1 ) && is_int ( $arg2 ) ) { eval ( '$return = (' . $arg1 . $operator . $arg2 . ');' ); return $return; } else { return null; } } ?> Endret 25. august 2009 av Jonas
j0achim Skrevet 25. august 2009 Forfatter Skrevet 25. august 2009 Takk for hjelpen, jeg så litt på eval i det jeg postet mitt andre svar, men fikk bare feil meldinger med den koden jeg hadde. Men denne fungerer supert!
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å