Peut-on mettre en œuvre une fonction d'extrait de php en php avec l'aide zend api
-
20-09-2019 - |
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?
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
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 »