Hi Leute,
ich habe hier eine kleine Herausforderung und ich hoffe, Ihr könnt mir den einen oder anderen Denkanstoß geben.
Mein Ziel ist es, eine Funktion zu basteln, der ein Array mit Parametern übergeben wird. Diese Parameter sollen dann der Reihe nach überprüft werden und als Resultat soll dann true oder false zurückgegeben werden.
Meine ersten Gedanken sehen wie folgt aus:
- der Funktion (z.B. has_access()) wird ein array übergeben, das z.B. folgenden Aufbau hat
PHP-Code:
array(
'user' => 'testuser',
'level' => 2,
'lnr' => array(1,2,3,4)
);
- nun soll über eine foreach-Schleife jeder Key/Value überprüft werden. Voraussetzung ist natürlich, dass das User-Objekt global ist und alle Keys in diesem Objekt vorhanden sind. Angenommen, dies ist alles erfüllt, habe ich das Problem, dass ich noch Operatoren benötige, die ich ebenfalls über das Array übergeben will. In dem obigen Fall würde dies dann z.B. so aussehen:
PHP-Code:
function has_access($params) {
global $userobject;
// hier soll nun die foreach Schleife die Überprüfungen durchführen
foreach ($params as $key => $value) {
if (!is_array($value)) {
if ($userobject->get($key) [OPERATOR] $value) {
$return[] = "true";
} else {
$return[] = "false";
}
} else {
if (in_array($userobject->get($key), $value)) {
$return[] = "true";
} else {
$return[] = "false";
}
}
}
// wenn im $return-array irgendwo ein "false" vorkommt, soll has_access
// "false" zurückliefern, andernfalls true
if (in_array("false", $return)) {
return false;
} else {
return true;
}
}
Meine Frage ist nun: wie bekomme ich die Operatoren (>, >=, <, <=) mit in die Funktion, sodass sie beim if benutzt werden können? Oder hat jemand noch eine andere Idee für den Funktionsaufbau?
Vielen Dank für Eure Hilfe!