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

POO ¿es posible este ejemplo?

Estas en el tema de POO ¿es posible este ejemplo? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, tengo una pregunta curiosa y el ejemplo que voy a escribir no me dá el resultado que quiero pero eso es lo ...
  #1 (permalink)  
Antiguo 23/04/2010, 17:19
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 19 años, 7 meses
Puntos: 2
Pregunta POO ¿es posible este ejemplo?

Hola a todos, tengo una pregunta curiosa y el ejemplo que voy a escribir no me dá el resultado que quiero pero eso es lo que quiero implementar y no sé si sea posible
Código PHP:
class plantilla {
  public function 
saludar() {
    echo 
__CLASS__;
  }
}

class 
hola extends plantilla {
}

$obj = new hola();
$obj->saludar();
// RESPUESTA "hola" <- que eso sería el nombre de la clase a donde la extendieron 
Eso es posible? con POO ya sea encapsulamiento, polimorfismo o lo que sea?

Salu2 de ante mano a quien me pueda colaborar con esta duda

PD: realmente el ejemplo funciona solo que me dá como respuesta "plantilla" cuando en realidad necesito que me salga el nombre de la clase a donde la extendieron
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #2 (permalink)  
Antiguo 23/04/2010, 18:05
Avatar de Vitesse92  
Fecha de Ingreso: diciembre-2009
Ubicación: Internet
Mensajes: 145
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: POO ¿es posible este ejemplo?

Código PHP:
<?php
class plantilla {
}

class 
hola extends plantilla {
public function 
saludar() {
    echo 
__CLASS__;
  }
}

$obj = new hola();
$obj->saludar();
// RESPUESTA "hola" <- que eso sería el nombre de la clase a donde la extendieron

?>
para hacer eso que tu dices, el codigo quedaria asi como esta arriba u.u
pero si lo que quieres es imprimir hola, ya no necesitarias extender la clase, mmm xD solo eso se me ocurrio...
  #3 (permalink)  
Antiguo 24/04/2010, 16:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a PHP orientado a objetos
  #4 (permalink)  
Antiguo 24/04/2010, 16:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: POO ¿es posible este ejemplo?

Usa get_class.

Saludos.
  #5 (permalink)  
Antiguo 25/04/2010, 08:07
 
Fecha de Ingreso: agosto-2009
Ubicación: Buenos Aires
Mensajes: 13
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: POO ¿es posible este ejemplo?

En PHP 5.3 existe el metodo get_called_class() que hace lo q vos necesitas

Como en las versiones anteriores no esta implementada por internet anda dando vueltas una función que hace lo mismo, si la encuentro la publico.

Saludos!
  #6 (permalink)  
Antiguo 25/04/2010, 09:42
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: POO ¿es posible este ejemplo?

Gracias, justo lo que necesitaba ;)
pero si llegas a encontrar la función que dices, porfis la compartes ;)

Salu2
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #7 (permalink)  
Antiguo 25/04/2010, 17:54
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: POO ¿es posible este ejemplo?

Código PHP:
class plantilla {
  public function 
saludar() {
   
//echo __CLASS__;
    
echo get_class($this);
  }
}

class 
hola extends plantilla {
}

$obj = new hola();
$obj->saludar();
// RESPUESTA "hola" <- que eso sería el nombre de la clase a donde la extendieron 

Etiquetas: ejemplo, poo, posible
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 17:58.