Eval accetta un solo argomento, una stringa che deve essere un programma PHP valido (senza i pero'). La funzione quando viene chiamata esegue il pezzo di programma che gli viene dato in input, e... se PHP fosse un linguaggio degno di questo nome ritornerebbe il valore di ritorno dell'ultima espressione computata o qualcosa del genere... invece no, troppo facile avere un comportamento sano eh? PHP sceglie invece di ritornare il valore di ritorno solo se c'e' nello script un return() esplicito. In pratical Eval("5+5"); non ritornera' 10, mentre Eval("return 5+5"); si. Cerchiamo meglio di capire come funziona Eval e perche' e' importante.
Esempio:
eval("echo('ciao')");
avra' come effetto di scrivere 'ciao'. Che senso ha direte voi, non era possibile semplicemente scrivere echo('ciao')? Certo, la differenza pero' e' che con eval il pezzo di programma da eseguire puo' essere creato dal programma stesso. Qualunque linguaggio di programmazione che presenta Eval() e' almeno in parte un linguaggio di programmazione programmabile. Per essere un buon linguaggio di programmazione programmabile deve avere altre caratteristiche in realta', come i blocks di Ruby, le macro di Lisp, o uplevel di Tcl, piu' una buonissima dose di introspection. PHP come linguaggio programmabile fa pena, ma bene o male Eval() c'e'.. e la possiamo usare a nostro vantaggio.
Per info vai su:http://antirez.com/page/oltre-il-php-1.html
Iscriviti a:
Commenti sul post (Atom)


Nessun commento:
Posta un commento