Moin,
Das könnte man mittels eval machen - das ist aber gefährlich, wenn du die Inhalte nicht ganz genau unter Kontrolle hast und weisst, was du tust.
Beispiel:
<?php
$V1[0] = "abc";
$V2[0] = "cba";
$O[0] = "!=";
if(eval($V1[0].$O[0].$V2[0])){
echo"error";
}else{
echo"ok";
}
?>
Eine andere Möglichkeit, wenn die Anzahl möglicher Operatoren, die vorkommen können, begrenzt
SEHR WICHTG!
Besonders, wenn ein user den operator eingibt. Denn sonst kann jemand einen Code einfügen, wie folgt;
//BEispiel:
$V1[0] = "abc";
$V2[0] = "cba";
$O[0] = "!= 5) {} mysql_query(\"DROP DATABASE wichtige_daten\"); if (5 !=";
if(eval($V1[0].$O[0].$V2[0])){
echo"error";
}else{
echo"ok";
}
?>
klarer Code wäre dann:
$V1[0] = "abc";
$V2[0] = "cba";
$O[0] = "!= 5) {} mysql_query(\"DROP DATABASE wichtige_daten\"); if (5 !=";
if("abc" != 5) {}
mysql_query("DROP DATABASE wichtige_daten");
if (5 != "cba")){
echo"error";
}else{
echo"ok";
}
?>
und schon bist du um ne Tabelle leichter. und das ist nur ein mögliches Beispiel.
Also Vorsicht!
Den Operator in einem switch/case-Konstrukt auswerten, und dort dann die jeweilige Vergleichsoperation mit den zwei variablen Vergleichswerten und fest kodiertem Operator vornehmen, und das Ergebnis zurückliefern.
MfG ChrisB
MfG,
èneR