<?php
class A
{
private $a = 1;
}
class B extends A
{
private $a = 2;
}
class C extends B
{
public $a = 3;
}
class D extends C
{
public $a = 4;
}
Standard input is empty
object(A)#1 (1) {
  ["a":"A":private]=>
  int(1)
}
object(B)#1 (2) {
  ["a":"B":private]=>
  int(2)
  ["a":"A":private]=>
  int(1)
}
object(C)#1 (3) {
  ["a"]=>
  int(3)
  ["a":"B":private]=>
  int(2)
  ["a":"A":private]=>
  int(1)
}
object(D)#1 (3) {
  ["a"]=>
  int(4)
  ["a":"B":private]=>
  int(2)
  ["a":"A":private]=>
  int(1)
}