La prima volta che sto cercando di utilizzare la dinamica create_function
, e fino ad ora, non molto successo :-)Php - create_function comprensione() - passando semplice variabile
La mia funzione è questa:
function o99_brsa_custom_widgets() {
global $wp_meta_boxes;
global $o99_brsa_options;
for($i=0; $i> count($o99_brsa_options[content]); $i++) {
$widgt_id = 'o99_dashboard_widget_dyn' . $i;
$widgt_name = 'obmek99 widget name' . $i;
$out = $o99_brsa_options[content][$i];
$f = create_function(' $out ',' global $out; echo $out;');
do_the_widgets($widgt_id, $widgt_name, $f);
}
}
L'azione do_the_widgets()
accetta solo un eco diretto e stampa il contenuto del widget.
Il $o99_brsa_options[content]
è un array verificato con elementi $i
(ciascuno è contenuto).
La cosa strana è che il $i
sta lavorando sulla $widgt_id
e $widgt_name
ma sul create_function()
ottengo lo stesso valore stampato in tutti i widget. (echo $out
)
Sembra che io non so come passare una variabile semplice alla nuova funzione (sto usando create_function all'interno globale(), ma aiuta poco quanto per ora.
Quindi, qual è il mio errore/incomprensione/abuso ora :-) ??
Se '$ out' sarà globale, cosa lo passi come argomento? – prodigitalson
Perché in qualche modo, se non lo faccio, non viene stampato nulla .. –
Bene se stai per usarlo come globale, il suo valore sarebbe già configurato al di fuori della funzione, e quindi lo modificheresti all'interno (o meno) e quello la modifica si applicherebbe globalmente non solo all'interno. Se hai solo bisogno di passare un argomento, allora rimuovi il globale. Se avete bisogno di fare entrambi modificare il nome dell'argomento e quindi modificarlo '$ out' all'interno della funzione. Esempio: 'create_function ('$ arg', 'global $ out; echo $ out. $ Arg;');' – prodigitalson