Gå til innhold

Operator som variabel?


Anbefalte innlegg

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 av j0achim
Lenke til kommentar
Videoannonse
Annonse

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 av j0achim
Lenke til kommentar

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 av Jonas
Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...