First of all, thank you to everybody who has responded to my (silly) questions; you have made this subject a lot more understandable. :)
static:: seems weird because it implies otherkeyword:: is not static. I think the point that was made from the other posters was that child:: was way too confusing because it implied something that just goes way beyond the scope of what the PHP can and cannot do. Without any other reasonable alternative to the keyword, I have to agree that static:: is the best candidate for the job. As for parent/self:: and even static::, what makes them static is the scope resolution operator (::), not their name. Their name just implies the context in which they are to be used. Anyways, I don't think there is a perfect solution that everybody would just love. It appears that this is a very difficult subject. Perhaps we should forget about the whole keyword and just allow objects
to access its static members like any other member? It works like that for static functions too. Why not let it act that way for static variables?:
I would have to disagree with you on this subject. The whole point of having a static model is the ability to access members of classes without having to instantiate them. ClassName::classMember is completely different than $className->classMember. Using the former means that you do not necessarily have an instantiated object of ClassName, but in the latter it is implied that you do. I would think that using $this::classMember in the wrong place could lead to some very troubling errors at run-time. -- It looked like something resembling white marble, which was probably what it was: something resembling white marble. -- Douglas Adams, "The Hitchhikers Guide to the Galaxy"