Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
Abdullah Althobetey18,216 Points
So what are the benefits of using closures? We can do the same thing with normal functions and using the keyword global instead of use() Or did I miss something?.
Tomasz Budny14,588 Points
If I understand this correctly if you will use the keyword global you will be able to change the variable outside of the function, but if you will just inherit the variable by passing it through use($var) than you will just get the global variables value from the moment of the functions definition to use inside your function under the same variable name but you are not going to be able to change the global variable it self. So its safer I guess.
There is also an option to "inherit by-reference" like so - use(&$var). This will let you use the value of a variable from when the function is called not from when it is defined.
BUUUUT that's just how I understand it. Don't take my word for it, just read this:
Does your suggested method support namespacing? Because if not.. that's a huge advantage!