It's possible to do this if the class B NOT extended the class A but the class A call a new class B
class A{ public $lang; public function __construct($lang) { $this->lang=$lang; } public function new_B(){ return new B(); } } class B{ public function __construct() { echo 'lang='.A::$lang; } } $root=new A('eng'); $root->new_B();