Question

fonction Extrait de php ajoute les variables à la portée locale de la fonction d'appel. Comment pouvons-nous écrire notre propre extrait de fonction php qui fait la même chose?

Était-ce utile?

La solution

Je ne pense pas que vous pouvez le faire en PHP pur. Fonction n'a pas accès aux variables de son appelant

Cela ressemble le genre de chose que vous aurez besoin d'écrire une extension C pour développer - vous aurez plus de contrôle sur le fonctionnement interne des variables PHP là-bas

.

(et je ne vois vraiment pas pourquoi vous essayez de le faire: pourquoi ne pas simplement utiliser l'existant fonction extract ?)

Autres conseils

PHPJS est une bibliothèque JavaScript qui contient les fonctions que celles de php, voici son extrait fonction vous pouvez avoir une idée de. Cela dit, je me demande pourquoi quand php fournit déjà un vous recherchez votre propre fonction.

Ok, si elle est juste pour le plaisir, il est possible:

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

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

echo $a;
?>

Mais certains problèmes - comme les conflits avec les données $, le nom de $ et la valeur de $ et vous ne pouvez pas l'envelopper dans une fonction. Mais possible.

Oui, il est possible,

la raison pour laquelle je l'ai fait parce que je besoin de quelque chose de plus de la fonction d'extrait qu'il devrait couper les valeurs trop

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

Je viens pas mon _GET, $ _POST, et les tableaux d'autre comme celui-ci par exemple pour $ _GET [ 'username'] = 'justnajm'; extractArray ($ _ GET);

et je peux me faire l'écho et il sera imprimé « justnajm »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top