Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Hacer casting

Estas en el tema de Hacer casting en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Estoy guardando en un vector objetos de una clase, por ejemplo Persona Código PHP: for( $i = 0 ; $i < 10 ; $i ...
  #1 (permalink)  
Antiguo 08/07/2005, 07:29
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
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...
________
lukos.org
  #2 (permalink)  
Antiguo 08/07/2005, 11:37
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
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.
  #3 (permalink)  
Antiguo 11/07/2005, 03:38
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
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...
________
lukos.org
  #4 (permalink)  
Antiguo 12/07/2005, 02:28
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
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...
________
lukos.org
  #5 (permalink)  
Antiguo 12/07/2005, 16:23
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
¿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
  #6 (permalink)  
Antiguo 13/07/2005, 05:09
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
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...
________
lukos.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:31.