⊗ppOpMgTS 87 of 107 menu

El método mágico toString en POO en PHP

El primer método mágico que estudiaremos se llama __toString. Se llama al intentar convertir una instancia de clase a cadena. Vamos a entender qué significa esto. Supongamos que tenemos esta clase User:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Vamos a crear un objeto de esta clase:

<?php $user = new User('john', 25); ?>

Y ahora intentemos mostrar el objeto creado con echo:

<?php $user = new User('john', 25); echo $user; ?>

El intento de mostrar un objeto con echo es una conversión a cadena. En este caso PHP mostrará un error, ya que los objetos no se convierten a cadena así como así.

Para eliminar el error, debemos decirle explícitamente a PHP qué hacer al intentar convertir un objeto a cadena. Para esto existe el método mágico __toString.

Si en el código de nuestra clase hacemos este método, entonces el resultado de este método (es decir, lo que devuelva mediante return) será la representación en cadena del objeto.

Supongamos que queremos que al intentar mostrar un objeto con echo, se muestre el nombre del usuario. Entonces hagamos el método __toString y devolvamos en él el valor de la propiedad name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Implementamos el método indicado: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Comprobemos:

<?php $user = new User('john', 25); echo $user; // mostrará 'john' - ¡todo funciona! ?>

Crea una clase User, en la que haya propiedades name y surn. Haz que al mostrar un objeto mediante echo en la pantalla se muestre una cadena con el nombre y apellido del usuario.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar