Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 08-jul-2005, 07:29   #1 (permalink)
elangelcaido está en el buen camino
 
Avatar de elangelcaido
 
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 911
Exclamación Hacer casting

Hola,

Estoy guardando en un vector objetos de una clase, por ejemplo Persona
Código PHP:
for($i=0;$i<10;$i++){
   
$matrizObjetos[$i]=new Persona($nombre);

Pues bien, ahora lo que quiero es hacer un FOR para que me muestre todos los nombres de esos objetos que tengo en la matriz. Yo lo tengo hecho asi:
Código PHP:
for($i=0;$i<10;$i++){
   echo 
$matrizObjetos[$i]->getNombre();

Donde getNombre() esta creado en la clase(ya me aseguré de eso). Pero me da un error en el ECHO: Fatal error: Call to a member function on a non-object in....

Asi que creo que el problema es que hay que hacer un casting para que sepa que es un atributo de un objeto a lo que estoy intentando acceder.

¿Alguien me puede ayudar?
__________________
Ta Luego! Al final sólo puede quedar uno...
________
Surfglassy.com Surf en Asturias
lukos.org
elangelcaido está desconectado   Responder Citando
Antiguo 08-jul-2005, 11:37   #2 (permalink)
sism82 ha deshabilitado el karma
 
Avatar de sism82
 
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Enviar un mensaje por MSN a sism82 Enviar un mensaje por Yahoo  a sism82
error. no es necesario un casting. y el fatal error se debe a que $matrizObjetos[$i] no es un objeto. Efectua un var_dump($matrizObjetos[$i]) en lugar de un echo en cada bucle del for para que te des cuenta que tipo de datos es. Pero seguro se debe a que no instanciaste correctamente el objeto.
__________________
Se debe llamar GNU/Linux, no solamente Linux, mas info en: http://www.gnu.org/gnu/gnu-linux-faq.es.html
sism82 está desconectado   Responder Citando
Antiguo 11-jul-2005, 03:38   #3 (permalink)
elangelcaido está en el buen camino
 
Avatar de elangelcaido
 
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 911
Tienes razon, he hecho el var_dump y me dice NULL. Entonces... ¿como deberia instanciar la matriz de objetos de la clase Persona?.

Gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
Surfglassy.com Surf en Asturias
lukos.org
elangelcaido está desconectado   Responder Citando
Antiguo 12-jul-2005, 02:28   #4 (permalink)
elangelcaido está en el buen camino
 
Avatar de elangelcaido
 
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 911
Alguien me puede ayudar con esto?, es que estoy bastante perdido en como instanciar una matriz de una clase de objetos hecha por mi.... please

Gracias.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
Surfglassy.com Surf en Asturias
lukos.org
elangelcaido está desconectado   Responder Citando
Antiguo 12-jul-2005, 16:23   #5 (permalink)
Moderador PHP
jpinedo ha deshabilitado el karma
 
Avatar de jpinedo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Piura
Mensajes: 2.753
¿Eso es todo lo que tienes en tu código?
¿En algún momento cambias el valor a $matrizObjetos?
Trata de simplificar tu código a esto:
Código PHP:
<?php
error_reporting
(E_ALL);
include(
"class.persona.php");// La definición de la clase
$matrizObjetos[0]= new Persona("Juan");// La instanciación de la clase
var_dump($matrizObjetos[0]);// Verificar el valor
?>
Saludos
jpinedo está desconectado   Responder Citando
Antiguo 13-jul-2005, 05:09   #6 (permalink)
elangelcaido está en el buen camino
 
Avatar de elangelcaido
 
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 911
Si, obviamente tenia mas codigo.
Gracias con este ejemplo que me acabas de poner ya entiendo como acceder a funciones de otras clases.

Es que yo entendia que para acceder a metodos de una clase tenia que hacer un casting como por ejemplo el que se puede hacer para obtener un numero entero:
(integer)$variable;
Pues yo creia que seria algo asi (Persona)$matrizObjetos[0];

Todo aclarado.

Muchas gracias otra vez.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
Surfglassy.com Surf en Asturias
lukos.org
elangelcaido está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:00.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93