Alguien me puede decir porque Carajo no funciona esto?
<?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?
<?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.
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 )
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