Consider the code below:
name;
No, it has nothing to do with weak typing.
I guess this was simply a design decision that the PHP developers took. It may be because it is more of a scripting language than Java. (In Java, you would need to have a "virtual" lookup table for fields to support this or, alternatively, automatically generated getters / setters).
You made the instance variable protected, this means extending classes can overwrite it. If you want to prevent that use private.
http://www.php.net/manual/en/language.oop5.visibility.php