David Krings wrote:
Allen suggests to "define that variable just before it's used, not
necessarily at the top of your script". Allen or someone else, what is
the benefit of doing it that way? What happens when you need to know
which variables are used in a script? When you document the script and
have to note which variables are input and which ones are output? Or
if you know you used a variable, but do not know the name, how would
you find it?
This is a coding style that works for me, which I picked up from Steve
McConell's book, /Code Complete: A Practical Handbook of Software
Construction/. I have no idea if that reference carries any weight with
most folks, but I found some sense in the argument he presented for
initializing variables as they are used, which is essentially that in
maintaining the code it's helpful to be able to look up a few lines and
confirm that the variable was initialized, edit the initialization,
remove it, etc. There's no "right way to do it," of course, but I do
find this style to be very convenient and to lend itself to ease of
maintenance.
I'm not sure how often you actually need a list of all the variables
used in a script. For objects and functions you do need to know the
properties, parameters, return values and such, sure. Go ahead and
document those clearly at the top, preferably using some standardized
documentation method (phpDoc, doxygen, etc.). But the temporary
variables used within a function or method are usually only relevant in
the lines where they're being used. Document them where you use them,
and save yourself the nightmare of keeping a single comprehensive
doc-block up to date.
Allen also wrote "Again, it totally depends on the logical flow of
your scripts". Why/when would the location of variable definitions
depend on the logical flow of the script?
If he needs to use that value in the beginning of his script, he'll have
to define it there. Where it's used is determined by how he wants the
script to work. I still recommend defining/initializing/documenting it
as close as possible to the place it's used.
- Allen
--
Allen Shaw
slidePresenter (http://slides.sourceforge.net)
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php