<?php

class A
{
  protected static $deps = array('A.default.js', 'A.tablet.js');
  public function getDependencies($class)
  {
    $deps = array();
		
		$parent = new ReflectionClass($this);
		
		do 
		{
			// ReflectionClass::getStaticPropertyValue() always throws ReflectionException with
			// message "Class [class] does not have a property named deps"
			// So I'm using ReflectionClass::getStaticProperties()
			
			$staticProps = $parent->getStaticProperties();
			$deps = array_merge($deps, $staticProps['deps']);
		}
		while ($parent=$parent->getParentClass());
		
		return $deps;
  }
}
class B extends A
{
  protected static $deps = array('B.default.js');
}

class C extends B
{
  protected static $deps = array('C.default.js');
}

$obj = new C();
var_dump( $obj->getDependencies($obj) );