0
由于PHP 5.3中的继承问题,导致static关键字出现问题。PHP 5.3中的后期静态在继承时不会产生预期结果
abstract class Object
{
protected static $_classDataSource = null;
public static function getDataSource()
{
return static::$_classDataSource;
}
public static function setDataSource($dataSource)
{
static::$_classDataSource = $dataSource;
}
}
class Film extends Object
{
}
class Actor extends Object
{
}
Film::setDataSource('FFF');
Actor::setDataSource('aaa');
echo Film::getDataSource();
echo Actor::getDataSource();
结果是: AAAAAA 预期的结果: FFFaaa
我应该怎么做,使之如预期?
[PHP5&Abstract Classes。单独的每个子类的类变量副本?](http://stackoverflow.com/questions/3391788/php5-abstract-classes-separate-copy-of-class-variables-for-each-child-class) – Artefacto 2010-08-09 17:58:00
请参阅也http://stackoverflow.com/questions/3187124/peculiar-behaviour-with-php-5-3-static-inheritance-and-references – Artefacto 2010-08-09 18:00:36