Definition und Verwendung
Die PHP-Funktion extract() importiert Variablen aus einem Array in die aktuelle Symboltabelle.
Für jedes Element im Array wird der Schlüssel für den Variablennamen und der Schlüssel für den Variablenwert verwendet.
Der zweite Parametertyp wird verwendet, um anzugeben, wie die Funktion extract() einen solchen Konflikt behandelt, wenn eine Variable bereits vorhanden ist und sich im Array ein Element mit demselben Namen befindet.
Diese Funktion gibt die Anzahl der erfolgreich gesetzten Variablen zurück.
Syntax
extract(array,extract_rules,prefix)
Parameterbeschreibung
array Erforderlich. Gibt die zu verwendende Eingabe an.
extract_rules
Optional. Die Funktion extract() prüft, ob jeder Schlüsselname ein zulässiger Variablenname ist und ob er mit dem Variablennamen in der Symboltabelle in Konflikt steht.
Die Behandlung illegaler, numerischer und widersprüchlicher Schlüsselnamen wird anhand dieses Parameters bestimmt. Kann einer der folgenden Werte sein:
Mögliche Werte:
EXTR_OVERWRITE – Standard. Bei einem Konflikt werden vorhandene Variablen überschrieben.
EXTR_SKIP – Überschreiben Sie keine vorhandenen Variablen, wenn ein Konflikt vorliegt. (Elemente mit demselben Namen im Array ignorieren)
EXTR_PREFIX_SAME – Wenn ein Konflikt vorliegt, stellen Sie dem Variablennamen ein Präfix voran. Ab PHP 4.0.5 gehört dazu auch der Umgang mit numerischen Indizes.
EXTR_PREFIX_ALL – Präfix allen Variablennamen voranstellen (dritter Parameter).
EXTR_PREFIX_INVALID – Präfix wird nur unzulässigen oder numerischen Variablennamen vorangestellt. Dieses Tag wurde in PHP 4.0.5 neu hinzugefügt.
EXTR_IF_EXISTS – Überschreiben Sie die Werte von Variablen mit demselben Namen nur, wenn sie bereits in der aktuellen Symboltabelle vorhanden sind. Andere werden nicht verarbeitet. Es kann verwendet werden, wenn eine Reihe zulässiger Variablen definiert wurde und Sie diese Variablen dann überschreiben möchten, indem Sie Werte aus einem Array wie $_REQUEST extrahieren. Dieses Tag wurde in PHP 4.2.0 neu hinzugefügt.
EXTR_PREFIX_IF_EXISTS – Nur wenn eine Variable mit demselben Namen bereits in der aktuellen Symboltabelle vorhanden ist, wird ein Variablenname mit einem Präfix erstellt und nichts anderes verarbeitet. Dieses Tag wurde in PHP 4.2.0 neu hinzugefügt.
EXTR_REFS – Variablen als Referenzen extrahieren. Dies ist ein starker Hinweis darauf, dass die importierte Variable weiterhin auf den Wert des Parameters var_array verweist. Dieses Flag kann allein oder in Kombination mit jedem anderen Flag verwendet werden, indem OR in extract_type verwendet wird. Dieses Tag wurde in PHP 4.3.0 neu hinzugefügt.
Präfix
Optional. Beachten Sie, dass ein Präfix nur erforderlich ist, wenn der Wert von extract_type EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID oder EXTR_PREFIX_IF_EXISTS ist. Wenn das Ergebnis nach dem Anhängen des Präfixes kein zulässiger Variablenname ist, wird dieser nicht in die Symboltabelle importiert.
Zwischen dem Präfix und dem Array-Schlüsselnamen wird automatisch ein Unterstrich eingefügt.
Beispiel 1
$a = 'Original';
$my_array = array("a " => "Katze", "b" => "Hund", "c" => "Pferd");
extract($my_array);
echo "$a = $a; b = $b; $c = $c";
?>
Ausgabe:
$a = Katze; $b = Hund; $c = Pferd
Beispiel 2
Verwenden Sie alle Parameter:
$a = 'Original';
$my_array = array("a " => "Katze", "b" => "Hund", "c" => "Pferd");
extract($my_array, EXTR_PREFIX_SAME, 'dup');
echo "$a = $a; $b = $b; $c = $c; $dup_a = $dup_a;";
?>
Ausgabe:
$a = Original; $b = Hund; $dup_a = Katze;