Why do local variables in Magento have an underscore prefix?
As a follow up to an earlier question I wonder if anyone knows why Magento templates all declare their variables with an underscore. Templates are .phtml files include
-ed from Mage_Core_Block_Template::fetchView()
, their local variables开发者_运维问答 are disposed of by the end of the function and never become global.
So what's the point of an underscore?
I think it's to respect ZF's naming convention:
http://framework.zend.com/manual/en/coding-standard.naming-conventions.html#coding-standard.naming-conventions.variables
For instance variables that are declared with the "private" or "protected" modifier, the first character of the variable name must be a single underscore. This is the only acceptable application of an underscore in a variable name. Member variables declared "public" should never start with an underscore.
No certain answer here, but I believe it's just an internal magento team coding convention. I'm sure you're aware of the underscore prefix's history in programming in general. It's not too much of a stretch to think that
local variables used in a view script that are loosely coupled with an object are similar to private or protected variables
In other words, the underscore serves as a warning that
hey, the contents of this variable doesn't just belong to this view, it's owned by something else
Part of the problem is there's no "official" recommendations from Zend, or anyone else, what sort of naming conventions should be used in phtml files.
精彩评论