Pergunta

Extrair a função do php adiciona variáveis de escopo local da função chamada.Como podemos escrever a nossa própria função php extrair que faz o mesmo?

Foi útil?

Solução

Eu não acho que você pode fazer isso em pura do PHP :uma função não tem acesso às variáveis do seu chamador.

Isso parece o tipo de coisa que você vai precisar para escrever um C de extensão para desenvolver -- você vai ter mais controle sobre o funcionamento do PHP variáveis de lá.

(E eu realmente não vejo por que você está tentando fazer isso :por que não usar apenas o existente extract função ?)

Outras dicas

PHPJS é uma biblioteca javascript que contém as funções como as de php, aqui é o seu extrato de função você pode obter uma ideia.Tendo dito isso, eu pergunto por que você está olhando para a sua própria função quando o php já fornece um.

Ok, se for apenas para a diversão, é possível:

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

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

echo $a;
?>

Mas alguns problemas como conflitos com $data, $nome e $valor e que você não pode envolvê-la em uma função.Mas possível.

Sim é possível,

a razão pela qual eu fiz isso porque eu preciso de algo mais de extrair a função que ele deve aparar os valores muito

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

Eu só pas minhas $_GET, $_POST, e outra coisa matrizes como este por exemplo:$_GET['username'] = ' justnajm ';extractArray($_GET);

e eu só posso eco e ele irá imprimir 'justnajm'

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top