Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2015, 20:05
Avatar de Macf
Macf
 
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Objetos anidados PHP

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.