Frage

Extrahieren Sie die Funktion von PHP fügt dem lokalen Bereich der Aufruffunktion Variablen hinzu. Wie können wir unsere eigene PHP -Funktion extrahieren, die dasselbe ist?

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie das in reinem Php tun können: Eine Funktion hat keinen Zugriff auf die Variablen seines Anrufers.

Dies sieht so aus, als ob Sie eine C -Erweiterung schreiben müssen, um sich zu entwickeln - Sie haben mehr Kontrolle über die Interna von PHP -Variablen.

(Und ich verstehe nicht wirklich, warum Sie das versuchen: Warum nicht einfach das Bestehende verwenden extract Funktion? ))

Andere Tipps

Phpjs ist eine JavaScript -Bibliothek, die die Funktionen als die von PHP enthält, hier ist seine Extrakt Funktion Sie können eine Idee bekommen. Trotzdem frage ich mich, warum Sie nach Ihrer eigenen Funktion suchen, wenn PHP bereits eine bietet.

Ok, wenn es nur zum Spaß ist, ist es möglich:

<?php
$data=array('a' => 1, 'b' => 2);

foreach ($data as $name => $value) {
    ${$name} = $value;
}

echo $a;
?>

Einige Probleme - wie Konflikte mit $ Data, $ Name und $ Value, und Sie können es nicht in eine Funktion einwickeln. Aber möglich.

Ja, es ist möglich,

Der Grund, warum ich dies getan habe

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}

Ich habe gerade mein $ _get, $ _post und sonst Arrays für solche für z. $ _Get ['Benutzername'] = 'JustNajm'; extractArray ($ _ GET);

Und ich kann einfach wiederholen und es wird 'Justnajm' drucken

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top