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! While you're at it, check out some resources Treehouse students have shared here.
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 trialGregg Squire
14,829 PointsIf you are using a static property, why would you create a shirt object and then "echo $shirt::$manufacturer;"?
Isn't the whole point of using a static property or method so that you don't need to create an object, so you can type "echo product::$manufacturer;"?
4 Answers
Andrew Shook
31,709 PointsNo, the point of a static property or method is to have a variable or function that is available to all objects of that class.
George Akinian
17,615 PointsIf function is public it is already available to all objects of that class. From what I understand the point of a static property or method is to have a variable or function from the NOT instantiated class available in the global scope to all objects and all classes. Not instantiated class means a class does not have an object yet, therefore it sits there idle, waiting to be activated into the memory. Using static we can make those variables or methods in the idle class available in the global scope. Thus the questions Gregg Squire asks remains valid.
Tom Hudock
855 PointsI agree with Gregg and Andrew. This part of the tutorial doesn't make sense. If the whole idea of using :: is so that you can access properties and methods in an object without having to instantiate them, then why create the $shirt object and then call $shirt::manufacturer? Wouldn't Product::manufacturer be the proper way to access a static property in a class that hasn't been instantiated?
Matthew Newman
8,741 PointsYep, the course examples are confusing. I understand the concepts but the examples don't really show why you would use the static keyword. It reminds me of situations when im in a conference room discussing issues with my fellow developers, then the next sentence they say "OK let me explain it another way" LOL. I still give props to the teacher. Its just hard sometimes explaining certain concepts.
Sohil Jokhiya
7,033 PointsThis tutorial is bit confusing! This tutorial doesn't explain static property and method right way, examples in this tutorials are using objects to access static methods or properties but defination on http://us2.php.net/manual/en/language.oop5.inheritance.php says something like,
"Declaring class properties or methods as static makes them accessible without needing an instantiation of the class."
Jeff Styles
2,784 PointsJeff Styles
2,784 PointsI agree. This has just frustrated me greatly. Every example shown on accessing the value of the $manufacturer property was done via an object. Then, the very first quiz question asked how to access getMaker() from OUTSIDE of the class - Product::getMaker();