Foros del Web » Programando para Internet » PHP »

PHP OO Utilidad practica del método mágico __toString

Estas en el tema de Utilidad practica del método mágico __toString en el foro de PHP en Foros del Web. Hola a todos, quiero pedirles un favor. Estoy estudiando los métodos mágicos de PHP y digamos que en modo general son faciles de entender y ...
  #1 (permalink)  
Antiguo 19/03/2013, 07:07
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Utilidad practica del método mágico __toString

Hola a todos, quiero pedirles un favor. Estoy estudiando los métodos mágicos de PHP y digamos que en modo general son faciles de entender y muy prácticos. Aún no me queda muy claro el uso que tiene __toString. Según la definición del manual es:

Cita:
El método __toString() permite a una clase decidir cómo comportarse cuando se le trata como un string. Por ejemplo, lo que echo $obj; mostraría. Este método debe devolver un string, si no se emitirá un nivel de error fatal E_RECOVERABLE_ERROR.
Y el ejemplo es tan sencillo como esto.

Código PHP:

<?php
// Declarar una clase simple
class TestClass
{
    public 
$foo;

    public function 
__construct($foo)
    {
        
$this->foo $foo;
    }

    public function 
__toString()
    {
        return 
$this->foo;
    }
}

$class = new TestClass('Hola Mundo');
echo 
$class;
?>
A lo que va mi pregunta es que no veo para que me podria ser de utilidad este ejemplo en un ambiente menos académico y si más práctico. Ya se que está pregunta para algunos sera trivial pero como siempre digo, prefiero ponerme colorado por preguntar antes que quedarme con la duda por el miedo a no preguntar lo "obvio".

Gracias de antemano por su colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/
  #2 (permalink)  
Antiguo 19/03/2013, 07:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Utilidad practica del método mágico __toString

Parece inutil con el ejemplo, puesto que el objeto del ejemplo solo tiene un atributo, es publico, string y es el mismo que se pasa para construirlo.

Pero imagina un objeto que para construirlo le passas el documento de identidad de una persona, el objeto con ese dato se conecta a una base de datos y obtiene el nombre y apellidos de ese docuemento de identidad, el empleo, la fecha de nacimiento y el sexo de la persona en cuestión y almacena todo eso en atributos privados del objeto.

En este caso no verias la utilidad de definir que y como se va a imprimir cuando hagas echo $obj;?

O un objeto que para construirlo le pasas el identificador de un departamento, y a partir de este consulta a la base de datos, la lista de empledos con todos los datos del ejemplo anterior, ademas los fichajes del control horario de esos empleados, el total producido y vendido ademas de la lista de productos del departamento.... es decir un objeto que encapsula todos los datos de un departamento.

Con __toString() podrás decidir que simplemente se imprima el nombre del departamento o toda la información estructurada de una determinada forma.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/03/2013 a las 07:26
  #3 (permalink)  
Antiguo 19/03/2013, 08:57
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Utilidad practica del método mágico __toString

De verdad muchas gracias quimfv por tu respuesta. Estoy diseñando un curso de PHP y quiero mostrarles a mis alumnos cosas que le sean de utilidad.

Digamos que la parte de __get, __set e __isset los ejemplos son muy basicos igual pero al menos son faciles de hacer una extensión y mostrar su real utilidad, sin embargo tanto el ejemplo de __toString en el libro de referencia como el manual no me daba muchas luces de como usarlo.

Ya diseñare algo sencillo para los alumnos y mostrarselos (aun no ven bases de datos usando POO) pero hare algo mas breve con arreglos para que al llegar a la parte de base de datos le vean la real utilidad.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: Ninguno
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 00:51.