This one is quite interesting and one reason for which I don’t like PHP that much.
FromĀ http://php.net/manual/en/language.oop5.visibility.php:

Members declared protected can be accessed only within the class itself and by inherited and parent classes.

So members declared in a class can be accessed by the parent class – this is a bit strange. As an example, this works:

Also the parent respects the visibility. if $text would’ve been private, ParentC would have thrown a “cannot access private property” error. This throws away the “inheritance” concept.
In a compiled (at least) language this would throw a biiig error.

This is just ugly. Of course, you can make interesting things with it, but you also could accomplish them with a proper OOP implementation.

I hope I won’t experience such pieces of code out, in the wilderness.