Ver Mensaje Individual
  #8 (permalink)  
Antiguo 18/06/2012, 10:59
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Métodos mágicos + symfony 2

Pues ya te puso uno @masterpuppet, pero algo sencillo:
Código PHP:
Ver original
  1. class Persona {
  2.        private $nombre;
  3.        private $apellidoPaterno;
  4.        private $apellidoMaterno;
  5.  
  6.        // gets y sets etc.
  7.  
  8.        public function __toString()
  9.        {
  10.                  return sprintf('%s %s %s', $this->nombre, $this->apellidoPaterno, $this->apellidoMaterno);
  11.        }
  12. }
  13.  
  14. $juan = new Persona('Juan', 'Perez', 'Gomez');
  15. echo $juan; // Juan Perez Gomez
  16. echo $juan->getNombre(); // Juan
  17. echo $juan->getApellidoPaterno(); // Perez

En corto, sirve para tener una representación directa de tu objeto como string en caso de que lo necesites, por ejemplo, en una persona, la mayoría de las veces necesitas el nombre completo, no las partes, aunque es bueno tener las partes y __toString() te ayuda a tratar el objeto como string cuando lo necesites sin perder las partes del string, otro ejemplo:
Código PHP:
Ver original
  1. $sql = new SqlQuery();
  2. $sql->from('personas')->cols('nombre, apellido, edad');
  3. $sql->where('edad > ?', 10)->where('apellido LIKE ?', 'p%');
  4.  
  5. echo $sql; // SELECT nombre, apellido, edad FROM personas WHERE...

Saludos.