See if a static property exists in a child class from the parent class (late static binding)?

You should try this:

if(property_exists(get_called_class(), '_aReadOnlyDatabaseTables')) {
   foreach(static::$_aReadOnlyDatabaseTables AS $TableName => $aColumns){
      // Do something
   }
}

The correct way would be initializing the value with a sane default value (empty array) in the parent class. That way you can be sure that the property will exist.

Everything you access in one class should be available by properly defining it when you are using the class on its own.