Convertir objeto a cadena en PHP

Subodh Poudel 30 enero 2023
  1. Utilice el método mágico __toString() para convertir un objeto en una cadena en PHP
  2. Utilice la función serialize() para convertir un objeto en una cadena en PHP
  3. Utilice la función print_r() para convertir un objeto en un Strig en PHP
Convertir objeto a cadena en PHP

Este tutorial presenta diferentes métodos para convertir un objeto en una cadena en PHP.

Utilice el método mágico __toString() para convertir un objeto en una cadena en PHP

Podemos usar el método mágico de PHP __toString() para convertir un objeto en una cadena en PHP. Hay algunos métodos en PHP que comienzan con __, y PHP los reserva. Cuando realizamos algunas acciones específicas en objetos, estos métodos anulan el comportamiento predeterminado. Algunas de las funciones mágicas son __construct(), __destruct(), __isset(), __set(), __get(), etc. Podemos usar el método __toString() para emular un objeto a una cuerda. Luego, podemos estudiar el comportamiento del objeto que actúa como una cuerda. Antes de PHP 8.0, el método __toString() siempre debería devolver un valor de cadena; de lo contrario, se producirá un error. Sin embargo, PHP 8.0 convertirá el valor en una cadena si es posible.

Por ejemplo, cree una clase Student y escriba una variable $name como propiedad y asígnele un nombre. Luego, escriba la función __toString() y devuelva la variable $name usando la palabra clave $this. Fuera de la clase, cree un objeto de la clase Student llamado $st. Ahora, use la función echo para imprimir el objeto $st.

En la sección de salida, podemos ver que se muestra el nombre. Por lo tanto, prueba que el objeto se ha convertido en una cadena. La función echo es una función de cadena, y la imprimimos usándola. Así es como podemos convertir un objeto en una cadena usando el método mágico __toString().

Código de ejemplo:

<?php
class Student {
 protected $name = 'Jadon';
 public function __toString() {
 return $this->name;
 }
}
$st = new Student;
echo $st;
?>

Producción :

Jadon

Utilice la función serialize() para convertir un objeto en una cadena en PHP

La función serialize() en PHP convierte el valor dado en una representación de una cadena de flujo de bytes. Podemos usar la función cuando queremos almacenar los datos en una sesión o base de datos. Los objetos se pueden convertir en una cadena usando la función serialize(). La función devuelve una secuencia de bits. Cuando necesitamos transferir bits a través de una red, la función entra en uso.

Por ejemplo, cree la misma clase y variable miembro que en el primer método. Luego, cree una función show(). Usando la función echo dentro de la función para imprimir la variable $name usando la palabra clave $this. Fuera de la función, cree un objeto $st de la clase Student. Llame a la función show() con el objeto $st. Luego use la función serialize() en el objeto $st e imprímalo con la función echo.

El siguiente ejemplo genera una cadena en una secuencia de bits. Por lo tanto, podemos convertir un objeto PHP en una cadena usando la función serialize().

Código de ejemplo:

<?php
class Student {
 protected $name = 'Jadon';
 public function show() {
 echo $this->name."<br>";
 }
}
$st = new Student;
$st->show();
$sr = serialize($st);
echo $sr;
?>

Producción :

Jadon
O:7:"Student":1:{s:7:"*name";s:5:"Jadon";}

Utilice la función print_r() para convertir un objeto en un Strig en PHP

También podemos usar la función print_r() para convertir un objeto en una cadena en PHP. La función toma el primer parámetro como valor a imprimir y el segundo parámetro como parámetro de retorno, un valor booleano. Podemos proporcionar un objeto como primer parámetro y un valor booleano true como segundo parámetro para devolver una cadena. El parámetro de retorno es opcional. La función print_r() imprimirá el valor de la variable suministrada si no se suministra el segundo parámetro.

Por ejemplo, cree una clase Student con dos variables miembro, $name y $age. Cree un constructor con $name y $age como parámetros y establezca las variables. Fuera de la clase, cree un objeto $st y dé los valores jadon y 21 como argumentos al constructor. Luego, cree otra variable $result y asígnele la función print_r(). Establezca el primer parámetro de la función como $st y true como segundo parámetro. Finalmente, utilice la función echo para imprimir el $result.

Cuando establecemos el parámetro de retorno de la función print_r() como true, entonces la función devuelve la cadena y la almacena en la variable $result. Así, podríamos imprimir la cadena usando la función echo. De esta manera, podemos usar la función print_r() para convertir el objeto en una cadena en PHP.

Código de ejemplo:

class Student {
 protected $name;
 protected $age;
 public function __construct($name, $age) {
 $this->name =$name;
 $this->age = $age;
 }
}
$st = new Student("jadon", 21);
$result = print_r($st, true);
echo $result;
?>

Producción :

Student Object ( [name:protected] => jadon [age:protected] => 21 )
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Object

Artículo relacionado - PHP String