j0achim Skrevet 25. august 2009 Del 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 Lenke til kommentar
j0achim Skrevet 25. august 2009 Forfatter Del 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 Lenke til kommentar
Jonas Skrevet 25. august 2009 Del 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 Lenke til kommentar
j0achim Skrevet 25. august 2009 Forfatter Del 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! 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å