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?

¿Fue útil?

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

Phpjs es una biblioteca de JavaScript que contiene las funciones como las de PHP, aquí está su extracto función de la que puede obtener una idea. Dicho esto, me pregunto por qué está buscando su propia función cuando PHP ya proporciona una.

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'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top