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

Reply via email to