Dal manuale http://www.php.net/manual/it/language.oop5.static.php:

A member declared as static can not be accessed with an instantiated class object (though a static method can).

Static properties cannot be accessed through the object using the arrow operator ->.
Nel tuo esempio accedi nelle due sottoclassi accedi ad $x ma non stai realmente accedendo alla proprietà statica $x dichiarata nella classe casa.

Le proprietà statiche sono proprietà che "appartengono" alla classe e non all'oggetto (istanza). Sono utili per l'implementazione di certi pattern come il singleton (vedi http://www.php.net/manual/it/language.oop5.patterns.php).