¿Podemos implementar una función de extracto de PHP en PHP sin usar la API Zend?
-
20-09-2019 - |
Pregunta
La función de extracto de PHP agrega variables al alcance local de la función de llamada. ¿Cómo podemos escribir nuestro propio extracto de función PHP que hace lo mismo?
Solución
No creo que puedas hacer eso en Pure-PHP: una función no tiene acceso a las variables de su persona que llama.
Esto parece el tipo de cosas que necesitará para escribir una extensión C para desarrollar: tendrá más control sobre las partes internas de las variables PHP allí.
(Y realmente no veo por qué estás tratando de hacer eso: ¿por qué no usar el existente? extract
función ? )
Otros consejos
Ok, si es solo por diversión, es posible:
<?php
$data=array('a' => 1, 'b' => 2);
foreach ($data as $name => $value) {
${$name} = $value;
}
echo $a;
?>
Pero algunos problemas, como conflictos con $ data, $ name y $ valor y no puede envolverlo en una función. Pero posible.
Sí, es posible,
La razón por la que hice esto porque necesito algo más de la función de extracto que también debería recortar los valores
function extractArray($ar) {
if(count($ar)>=1) {
foreach($ar as $k=>$v) {
$GLOBALS[$k] = (is_array($v)?$v:trim($v));
}
}
}
Acabo de pasar mi $ _get, $ _post y de lo contrario matrices como esta por eg $ _get ['username'] = 'justNajm'; ExtractArray ($ _ get);
y puedo hacer eco e imprimirá 'justnajm'