PHP-Funktion __construct () Frage Einbeziehung this-> get = $ _GET
-
06-07-2019 - |
Frage
Ich arbeite an jemandes Code und sie haben einen Konstruktor, der verwendet:
class qwerty {
public function __construct(){
// some other code
$this->get = $_GET;
}
}
Meine Frage ist: Ist es möglich, die Daten innerhalb des Konstruktors zu sanieren? Auch mit einigen einfachen Funktion wie strip_tags ()?
Beispiel für die Verwendung:
$qwerty = new qwerty;
qwerty->get['id'];
Lösung
Ich sehe zwei Möglichkeiten, es zu nähern. Eine wäre, nur eine foreach-Schleife in dem contructor einer Schleife durch die $ _GET Parameter verwendet
foreach($_GET AS $key => $val)
{
$_GET[$key] = sanitize($val);
}
Alternativ können die Daten über eine get-Funktion abrufen und dort sanieren.
function getParams($key)
{
return sanitize($_GET[$key]);
}
Andere Tipps
Sie können so ziemlich alles, was Sie im Konstruktor wollen. Having said that, es bedeutet nicht, Sie sollten. Viele würden argumentieren, dass etwas Sinnvolles oder das könnte eine Ausnahme auslösen, sollte nicht in einem Konstruktor sein. Wie auch immer, wenn Sie diese Klasse verwenden wollen Sie so etwas tun könnte:
class qwerty
{
private $get;
public function __construct($params)
{
$this->get = $this->sanitize($params);
}
public function sanitize($params)
{
$sanitized = $params;
foreach ($sanitized as $key => $value) {
$sanitized[$key] = strip_tags($value);
}
return $sanitized;
}
public function getField($field)
{
if (array_key_exists($field,$this->get)) {
return $this->get[$field];
} else {
return null;
}
}
}
$q = new qwerty($_GET);
$q->getField('id');