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'];
War es hilfreich?

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');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top