Buenas noches, estoy haciendo un pequeño juego y se me ha ocurrido hacerlo de una forma que me parece la mejor forma de hacerlo, el juego consiste en una ciudad, que tiene x edificios. Tengo un objeto que sea $ciudad con unas propiedades (como numero de habitantes, dinero, dueño, etc), que dentro tenga otro objeto por cada edificio, y que cada edificio tenga unas acciones que puede realizar, (por ejemplo: $ciudad->cuartel->entrenar(5,arqueros) ) todo funciona bien, creo las clases, instancio los objetos y todo va bien.
 
Código de ejemplo: 
 Código PHP:
    <?php
 
class ciudad {
    public $edificio1;
    public $duenoId=1; //Id del dueño de la ciudad
        public $dinero=1000; 
}
 
class Edificio1 {
    
    public function subirNivel() {
        echo 'estoy subiendo un nivel del edificio1</br>';
    }
}
 
    $ciudad1= new Ciudad;
    $ciudad1->edificio1= new Edificio1;
    $ciudad1->edificio1->subirNivel();
    echo $objeto1->duenoId;
?>    
  Mi pregunta es, ¿hay alguna forma, para que pueda acceder a las propiedades del objeto ciudad1 desde dentro del objeto edificio1? Por ejemplo, si cuando yo dijera subir 1 nivel del edificio1, tuviera que saber la id del dueño de la ciudad (propiedad duenoId) para hacer la consulta a la base de datos, o restarle el dinero que cueste construir el edificio al subir el nivel ¿como lo podría hacer?  
Quizás la forma que tengo de enfocarlo no sea la mejor, o directamente sea imposible, pero solo por poder hacer $ciudad->cuartel->entrenar(5,arqueros) tengo que intentarlo. 
Un saludo, y gracias de antemano.