{ echo __METHOD__ . "(begin)\n"; parent::__construct(); parent::test(); $this->test(); $this->member = 'derived::member'; echo __METHOD__ . "(end)\n"; } function test() { parent::test(); echo __METHOD__ . "\n"; print_r($this); } } $t = new derived(); $t->test(); unset($t); echo "Done\n"; ?> --EXPECTF-- derived::__construct(begin) base::__construct(begin) base::test derived Object ( [member] => derived::member (default) [member:base:private] => base::member ) derived::test derived Object
[expect php] [file] <?php class base { function base() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } } class derived extends base { function base() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } } $obj = new derived(); $obj->base();
<?php abstract class base { function show() { echo "base\n"; } } class derived extends base { } $t = new derived(); $t->show(); $t = new base(); $t->show(); echo "Done\n"; // shouldn't be displayed
} static function inc() { base::$prop++; echo __METHOD__ . "()\n"; } } class derived extends base { public static $prop = 2; 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(); $r = new ReflectionClass('derived'); echo 'Number of properties: ' . count($r->getStaticProperties()) . "\n"; echo "Done\n";
function test() { $this->show(); } } $t = new base(); $t->test(); class derived extends base { function show() { echo "derived\n"; } function test() { echo "test\n"; $this->show(); parent::test(); parent::show(); } } $t = new derived(); $t->test(); ?> --EXPECTF-- base test derived base Fatal error: Call to private method base::show() from context 'derived' in %s on line %d, position %d
echo "{$k}=>{$v}\n"; } } } class derived extends base { } $o = new base(); $o->d = 4; echo "===base::function===\n"; $o->f(); echo "===base,foreach===\n"; foreach ($o as $k => $v) { echo "{$k}=>{$v}\n"; } $o = new derived(); $o->d = 4; echo "===derived::function===\n"; $o->f(); echo "===derived,foreach===\n"; foreach ($o as $k => $v) { echo "{$k}=>{$v}\n"; } ?> --EXPECT-- ===base::function=== a=>1 b=>2 c=>3 d=>4 ===base,foreach===