Converter objeto em string em PHP

Subodh Poudel 30 janeiro 2023
  1. Use o método mágico __toString() para converter um objeto em uma string em PHP
  2. Use a função serialize() para converter um objeto em uma string em PHP
  3. Use a função print_r() para converter um objeto em um Strig em PHP
Converter objeto em string em PHP

Este tutorial apresenta diferentes métodos para converter um objeto em uma string em PHP.

Use o método mágico __toString() para converter um objeto em uma string em PHP

Podemos usar o método mágico __toString() PHP para converter um objeto em uma string em PHP. Existem alguns métodos em PHP que começam com __, e o PHP os reserva. Quando executamos algumas ações específicas em objetos, esses métodos substituem o comportamento padrão. Algumas das funções mágicas são __construct(), __destruct(), __isset(), __set(), __get(), etc. Podemos usar o método __toString() para emular um objeto para uma string. Então, podemos estudar o comportamento do objeto que atua como uma corda. Antes do PHP 8.0, o método __toString() sempre deveria retornar um valor de string; caso contrário, um erro será gerado. No entanto, o PHP 8.0 forçará o valor em uma string, se possível.

Por exemplo, crie uma classe Student e escreva uma variável $name como propriedade e dê um nome a ela. Então, escreva a função __toString() e retorne a variável $name usando a palavra-chave $this. Fora da classe, crie um objeto da classe Student denominado $st. Agora, use a função echo para imprimir o objeto $st.

Na seção de saída, podemos ver que o nome é exibido. Conseqüentemente, prova que o objeto foi convertido em uma string. A função echo é uma função string, e imprimimos a string usando-a. É assim que podemos converter um objeto em uma string usando o método mágico __toString().

Código de exemplo:

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

Resultado:

Jadon

Use a função serialize() para converter um objeto em uma string em PHP

A função serialize() no PHP converte o valor dado em uma representação de uma string de fluxo de bytes. Podemos usar a função quando quisermos armazenar os dados em uma sessão ou banco de dados. Os objetos podem ser convertidos em uma string usando a função serialize(). A função retorna uma sequência de bits. Quando precisamos transferir bits em uma rede, a função entra em uso.

Por exemplo, crie a mesma classe e variável de membro como no primeiro método. Em seguida, crie uma função show(). Usando a função echo dentro da função para imprimir a variável $name usando a palavra-chave $this. Fora da função, crie um objeto $st da classe Student. Chame a função show() com o objeto $st. Em seguida, use a função serialize() no objeto $st e imprima-o com a função echo.

O exemplo abaixo produz uma string em uma sequência de bits. Assim, podemos converter um objeto PHP em uma string usando a função serialize().

Código de exemplo:

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

Resultado:

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

Use a função print_r() para converter um objeto em um Strig em PHP

Também podemos usar a função print_r() para converter um objeto em uma string em PHP. A função usa o primeiro parâmetro como o valor a ser impresso e o segundo parâmetro como o parâmetro de retorno, um valor booleano. Podemos fornecer um objeto como o primeiro parâmetro e um valor booleano true como o segundo parâmetro para retornar uma string. O parâmetro de retorno é opcional. A função print_r() imprimirá o valor da variável fornecida se o segundo parâmetro não for fornecido.

Por exemplo, crie uma classe Student com duas variáveis ​​de membro, $name e $age. Crie um construtor com $name e $age como parâmetros e defina as variáveis. Fora da classe, crie um objeto $st e forneça os valores jadon e 21 como argumentos para o construtor. Então, crie outra variável $result e atribua a função print_r() a ela. Defina o primeiro parâmetro da função como $st e true como o segundo parâmetro. Finalmente, use a função echo para imprimir o $result.

Quando definimos o parâmetro de retorno da função print_r() como true, a função retornou a string e a armazenou na variável $result. Assim, poderíamos imprimir a string usando a função echo. Desta forma, podemos usar a função print_r() para converter o objeto em uma string em PHP.

Código de exemplo:

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;
?>

Resultado:

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

Artigo relacionado - PHP Object

Artigo relacionado - PHP String