Eine Klasse hier würde Ihr Leben viel einfacher machen.
<?php
class ParamHelper
{
protected $source;
public function __construct(array $source)
{
$this->source = $source;
}
public function get($key, $default=null, $validationCallback=null)
{
if (isset($this->source[$key]) && !empty($this->source[$key]))
{
if (is_null($validationCallback) || (!is_null($validationCallback) && call_user_func($validationCallback, $this->source[$key])))
{
return $this->source[$key];
}
}
return $default;
}
}
// Just for the demo
function validateUpper($value)
{
return ($value == strtoupper($value));
}
// Mimic some query-string values
$_GET['foo'] = 'bar';
$_GET['bar'] = 'BAZ';
$_GET['lol'] = 'el oh el';
$getHelper = new ParamHelper($_GET);
echo $getHelper->get('foo', 'foo default', 'validateUpper'), '<br>';
echo $getHelper->get('bar', 'bar default', 'validateUpper'), '<br>';
echo $getHelper->get('baz', 'baz default'), '<br>';
echo $getHelper->get('lol'), '<br>';
echo $getHelper->get('rofl'), '<br>';
Gibt die PHP-Spezifikation irgendwelche Leistungsgarantien für Tabellennachschlage? –
Ich kann mir nicht vorstellen, was Sie denken lässt, dass es eine PHP-Spezifikation gibt. :/ – chaos
Ich habe keine Ahnung. ;) Ich habe einen C++ Hintergrund und ich habe vor ein paar Stunden mit PHP angefangen. –