Problema con objeto dentro de otro objeto

Iniciado por Skeletron, 5 Enero 2011, 03:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Alguien me puede decir porque Carajo no funciona esto?

Código (php) [Seleccionar]
<?php
include('personaje.php');
$pepe = new Personaje(22); //Esto si funciona

class Guerrero{
private $pepe = new Personaje(22); //Esto no funciona

function getPersonaje(){
//return $this->personaje;
}
}
?>


Que le pica a PHP? No se puede crear un objeto dentro de otro objeto? WTF? WTFF?

WHK

Código (php) [Seleccionar]
<?php

class Guerrero{
var $personaje;

function __construct(){
include('personaje.php');
$this->personaje = new Personaje();
}

function getPersonaje($id){
return $this->personaje->get($id);
}
}
?>


las variables publicas y privadas de una clase son constantes, no pueden llevar valores variables como por ejemplo la carga directa de una función.
en ese caso solamente declaras el nombre de la variable y despues con __construct() defines el valor de la variable al iniciar la clase y para llamar una clase dentro de otra clase le haces un
$objeto->variable_que_aloja_el_otro_objeto->variable_o_funcion;

saludos.

Skeletron

Mira vos que interesante.
No es al pedo que sos Moderador Global...
Busqué esta solucion en Español, y NADA. Todo en Ingles, y no entendía las explicaciones :P

Pero cuando hago un var $x, se puede acceder desde fuera luego? o necesito un GET? (lo iré a probar :P )

Skeletron

O sea que, voy a perder la funcionabilidad dentro de la clase (a la hora de programar), esa que cuando escribes: $this->pepe-> y te lista los metodos que hay dentro de pepe...
Que **** *****.


EDITO:
SI!! FUNCIONA! :P
Gracias Dreamweaver :P