Converter objeto em string em PHP
-
Use o método mágico
__toString()
para converter um objeto em uma string em PHP -
Use a função
serialize()
para converter um objeto em uma string em PHP -
Use a função
print_r()
para converter um objeto em um Strig 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 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.
LinkedInArtigo relacionado - PHP Object
- Criar matriz de objetos em PHP
- Converter objeto PHP em matriz associativa
- Crie um objeto sem classe em PHP