Lo que el código está haciendo, está buscando en el
búfer de salida mientras que la generación de la cadena que la clase debe devolver.
_toString es cuál es llamado un "método mágico" en las clases de PHP. Básicamente, cada vez que una instancia de una clase, por ejemplo, cuando pasó a su eco, debe devolver una cadena que por cualquier razón, _toString es un método que puede definir en la definición de clase como una forma de determinar cómo la clase devolverá una cadena .
Por ejemplo, si usted tiene una clase denominada "persona" con dos attributres, "first_name" y "apellidos".
class
{
public $first_name, $last_name;
public function __construct($first, $last)
{
$this->first_name = $first;
$this->last_name = $last;
}
}
- class
- {
- public $first_name, $last_name;
- public function __construct($first, $last)
- {
- $this->first_name = $first;
- $this->last_name = $last;
- }
- }
Podría algo de configuración como ésta para obtener una "persona" s nombre completo.
$me = new person('joe', 'bert');
echo $me->first_name . ' ' . $me->last_name;
- $me = new person('joe', 'bert');
- echo $me->first_name . ' ' . $me->last_name;
O, usted puede configurar un método _toString, que PHP sepa para llamar automáticamente a fin de generar la cadena cuando se hace algo como
echo new person('joe', 'bert');
Por ejemplo
class
{
public $first_name, $last_name;
public function __construct($first, $last)
{
$this->first_name = $first;
$this->last_name = $last;
}
public function __toString()
{
return $this->first_name . ' ' . $this->last_name;
}
}
$me = new person('joe', 'bert');
define('GREETING', 'Hello, my name is %s');
printf(GREETING, $me);
- class
- {
- public $first_name, $last_name;
- public function __construct($first, $last)
- {
- $this->first_name = $first;
- $this->last_name = $last;
- }
- public function __toString()
- {
- return $this->first_name . ' ' . $this->last_name;
- }
- }
- $me = new person('joe', 'bert');
- define('GREETING', 'Hello, my name is %s');
- printf(GREETING, $me);
Ahora, siendo realistas, lo más probable es que nunca van a tener una clase que se ve en el búfer de salida antes de generar una cadena de producción. La única vez que se me ocurrió que incluso sería razonable (un poco) es que si había una clase que define una parte del idioma Inglés que se veía en la salida impresa anteriormente para ver cómo se debe imprimir algo.
Por ejemplo, si había una palabra clave que puede ser singular o plural dependiendo de lo que fue impreso antes de él, podría regresar lo que uno podría tener más sentido de la frase en la actualidad genera. Ahora, en 7 años nunca he visto nada como lo que hace, el ejemplo que he publicado es en realidad la primera vez he visto algo como este período. Por lo tanto, usted es probablemente seguro asumir sus casi nunca va a ser algo que usted necesita preocuparse,

Strong with this one, the sudo is.