2003-09-04 16:00:01 +00:00
|
|
|
--TEST--
|
2006-03-12 12:38:25 +00:00
|
|
|
Reflection and inheriting static properties
|
2003-09-04 16:00:01 +00:00
|
|
|
--SKIPIF--
|
2006-03-12 12:38:25 +00:00
|
|
|
<?php extension_loaded('reflection') or die('skip'); ?>
|
2003-09-04 16:00:01 +00:00
|
|
|
--FILE--
|
|
|
|
<?php
|
|
|
|
|
|
|
|
class base {
|
|
|
|
static protected $prop = 2;
|
|
|
|
|
|
|
|
static function show() {
|
|
|
|
echo __METHOD__ . '(' . self::$prop . ")\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
static function inc() {
|
|
|
|
base::$prop++;
|
|
|
|
echo __METHOD__ . "()\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class derived extends base {
|
|
|
|
static public $prop;
|
|
|
|
|
|
|
|
static function show() {
|
|
|
|
echo __METHOD__ . '(' . self::$prop . ")\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
static function inc() {
|
|
|
|
derived::$prop++;
|
|
|
|
echo __METHOD__ . "()\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
base::show();
|
|
|
|
derived::show();
|
|
|
|
|
|
|
|
base::inc();
|
|
|
|
|
|
|
|
base::show();
|
|
|
|
derived::show();
|
|
|
|
|
|
|
|
derived::inc();
|
|
|
|
|
|
|
|
base::show();
|
|
|
|
derived::show();
|
|
|
|
|
2004-03-30 21:13:05 +00:00
|
|
|
$r = new ReflectionClass('derived');
|
2003-09-04 16:00:01 +00:00
|
|
|
echo 'Number of properties: '. count($r->getStaticProperties()) . "\n";
|
|
|
|
|
|
|
|
echo "Done\n";
|
|
|
|
?>
|
|
|
|
--EXPECTF--
|
|
|
|
base::show(2)
|
|
|
|
derived::show(2)
|
|
|
|
base::inc()
|
|
|
|
base::show(3)
|
|
|
|
derived::show(3)
|
|
|
|
derived::inc()
|
|
|
|
base::show(4)
|
|
|
|
derived::show(4)
|
|
|
|
Number of properties: 1
|
|
|
|
Done
|