Possiamo implementare una funzione php estratto in php con fuori utilizzando Zend api
-
20-09-2019 - |
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?
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
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'