А как вы себе это представляете?
Откуда объект B будет знать к какому именно из экземпляров класса A нужно обратится?
Если речь идет о статичных вызовах и не известно какой класс нужно вызывать, т.е переменная $c класса B может содержаться как в классе A так и в классе D, а вызывать метод d() нужно в том классе из которого был вызван этот метод то можно
сделать через ж извратится и сделать тестовый екзепшн, отловить его, и в нём будет сказано из какого класса он был вызван:
class TestException extends Exception{};
class A{
private $c;
public static $e = 'Hello World';
public function __construct(){
$this->c = new B();
}
public function test(){
return $this->c->d();
}
}
class B{
public function d(){
try{
throw new TestException();
}catch(TestException $e){
$trace = $e->getTrace();
$class = $trace[1]['class'];
$vars = get_class_vars($class);
return $vars['e'];
/*
либо:
return $class::$e;
если php >= 5.3
*/
}catch(Exception $e){
}
return null;
}
}
$a = new A();
var_dump( $a->test() );
// out: string(11) "Hello World"
Если это так, то я вам советую почитать про рефлексию (Reflection in php)