Petit démonstration avec un code très simple :

<?
class MyParent {
    static $myvar = 'foobar';
    static function getvar() {
        return self::$myvar;
    }
}
class MyChild extends MyParent {
    static $myvar = 'barfoo';
}

echo MyParent::getvar();
echo MyChild::getvar();

Et le résultat est, comme on ne s'y attend pas :

foobar
foobar

C'est assez déstabilisant et complètement erroné. Cela vient du compilateur PHP qui appelle les méthode statiques dans le contexte de la classe de définition et néglige l'héritage.

Il semble que le problème soit corrigé à partir de la 5.3.0, mais beaucoup de distributions n'en sont pas encore là.

Pour information, les version de PHP de diverses distributions :
Debian lenny :

$ php5-cgi -v
PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cgi-fcgi) (built: Mar 14 2010 09:02:24)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

Centos 5.4 (Final)

$ php -v
PHP 5.2.9 (cli) (built: Apr  3 2009 17:33:04) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

Ubuntu karmic (9.10)

$ php5 -v
PHP 5.2.10-2ubuntu6.4 with Suhosin-Patch 0.9.7 (cli) (built: Jan  6 2010 22:41:56) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies