boingboing
Goto Top

PHP - Variabler Vergleichsoperator

Guten Tag,
ich habe ein Problem den richtigen Ansatz zu finden.

Vorweg, ich habe schon bei Google nach wegen gesucht, unter anderem zur Hilfenahme einer kleinen Klasse, aber irgendwie steh ich auf dem Schlauch.

Ich habe ein Objekt z.B. Kuchen. In diesem Objekt ist eine Liste mit Zutaten Gekapselt. $kuchen->Zutatenlisten.

Ich habe jetzt eine zweite Liste, die von dem Benutzer gefüllt werden kann mit:

Zutat A soll drin sein
UND Zusat B soll drin sein
ODER Zutat C soll nicht drin sein

Konkret
$list = array('operator' => 'AND', 'zutat' = 'Mehl', 'contains' => true;
$list[1] = array('operator' => 'OR', 'zutat' = 'Butter', 'contains' => true;
...

Meine Überlegung ist jetzt: ich würde die Liste nach dem Operator sortieren, sie aufsplitten, alle AND Einträge auf true/false überprüfen und jeden OR eintrag seperat auf true/false überprüfen. und im Anschluss ein gesamt true erzeugen, sobald eins davon true ist?

Oder gibt es da einen viel eleganteren weg? Steh grad ein bisschen auf dem Schlauch

update:
habs mit eval() gelöst

Content-Key: 179267

Url: https://administrator.de/contentid/179267

Printed on: April 26, 2024 at 08:04 o'clock

Member: dog
dog Jan 20, 2012 at 16:30:01 (UTC)
Goto Top
Du kannst nicht einfach zwei verschiedene Operatoren ungeklammert stehen lassen:

Zutat A soll drin sein
UND Zusat B soll drin sein
ODER Zutat C soll nicht drin sein

Tja, meinst du jetzt
(A & B) | C
oder doch
A & ( B | C )
?

habs mit eval() gelöst

Die Funktion hat mit voller Absicht nur einen Buchstaben Unterschied zum Wort EVIL!
Prinzipiell sollte die Funktion niemals verwendet werden.