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