--TEST-- ZE2 A derived class can use the inherited constructor/destructor --SKIPIF-- --FILE-- name = 'base'; print_r($this); } function __destruct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; print_r($this); } } class derived extends base { public $other; function __construct() { $this->name = 'init'; $this->other = 'other'; print_r($this); parent::__construct(); echo __CLASS__ . "::" . __FUNCTION__ . "\n"; $this->name = 'derived'; print_r($this); } function __destruct() { parent::__destruct(); echo __CLASS__ . "::" . __FUNCTION__ . "\n"; print_r($this); } } echo "Testing class base\n"; $t = new base(); unset($t); echo "Testing class derived\n"; $t = new derived(); unset($t); echo "Done\n"; ?> --EXPECTF-- Testing class base base::__construct base Object ( [name] => base ) base::__destruct base Object ( [name] => base ) Testing class derived derived Object ( [other] => other [name] => init ) base::__construct derived Object ( [other] => other [name] => base ) derived::__construct derived Object ( [other] => other [name] => derived ) base::__destruct derived Object ( [other] => other [name] => derived ) derived::__destruct derived Object ( [other] => other [name] => derived ) Done