Re: Rate my (really) simple template class

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 15, 2011 at 05:02:51PM -0500, Brian Waters wrote:

> On Mon, Feb 14, 2011 at 11:49 PM, Paul M Foster <paulf@xxxxxxxxxxxxxxxxx>
> wrote:
> > Advice: don't use eval() this way. It's slow and dangerous.
> 
> Could you elaborate, or provide a link?

A year or two on this list. The comments in the php.net article on
eval(). Experience with other languages which have similar constructs.
See also Appendix B on Functions in *Essential PHP Security*, a thin but
important book to have. The eval() function is the first one the author
cautions against, and explains why.

I wouldn't use eval() unless I constructed the input for it myself and
was fairly sure I could trust what I constructed. But that's just me.

> 
> > ...read in the file and pass it to you on the stack, which is
> > really an abuse of the stack if you can avoid it.
> 
> Interesting. I'm used to statically-typed languages. Normally I never
> would have passed a large structure like that on the stack. But then
> again, in those languages, large structures are usually passed by
> reference, by default. In C, the only way to pass a string or array by
> value is to wrap it in a struct, and in Java, objects are passed by
> reference (if I recall correctly).

C strings are peculiar animals, as K & R point out. By default, function
parameters in PHP are passed by value. You can pass them by reference,
but it's the exception rather than the rule.

Paul

-- 
Paul M. Foster
http://noferblatz.com


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux