Testing class base base::__construct base Object ( [name] => base ) base::__destruct base Object ( [name] => base ) Testing class derived derived Object ( [name] => init [other] => other ) base::__construct derived Object ( [name] => base [other] => other ) derived::__construct derived Object ( [name] => derived [other] => other ) base::__destruct derived Object ( [name] => derived [other] => other ) derived::__destruct derived Object ( [name] => derived [other] => other ) Done