HOWTO · PHP

Converter objeto em string em PHP

Este tutorial apresenta como converter um objeto em uma string em PHP

Nesta página

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 )