Domanda

funzione di estratto di php aggiunge variabili per l'ambito locale della funzione chiamante. Come possiamo scrivere la nostra funzione propria di PHP estratto che fa la stessa cosa?

È stato utile?

Soluzione

Non credo che si può fare in puro-PHP:. Una funzione non ha accesso alle variabili del suo chiamante

Questa si presenta come il genere di cose è necessario scrivere un estensione C per sviluppare - avrai un maggiore controllo sui meccanismi interni di variabili PHP là

.

(E io non vedo proprio il motivo per cui si sta cercando di fare questo: perché non utilizzare l'esistente funzione extract ?)

Altri suggerimenti

PHPJS è una libreria JavaScript che contiene le funzioni come quelle di php, qui è il suo estratto funzione che si può avere un'idea da. Detto questo, mi chiedo perché stai cercando una propria funzione quando il PHP fornisce già uno.

Ok, se è solo per il gusto di farlo è possibile:

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

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

echo $a;
?>

Ma alcuni problemi - come i conflitti con i dati $, $ nome e il valore $ e non si può avvolgere in una funzione. Ma possibile.

Sì, è possibile,

il motivo per cui ho fatto questo perché ho bisogno di qualcosa di più da funzione estratto che dovrebbe tagliare i valori troppo

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

Ho appena pas my $ _GET, $ _POST, e gli array altro come questo per esempio $ _GET [ 'username'] = 'justnajm'; extractArray ($ _ GET);

e posso solo eco e sarà stampare 'justnajm'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top