Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, enfrentei um problema agora que não encontrei nenhuma referência na internet, um comportamento estranho de uma classe minha no return.
pra ficar mais facil de perguntar vou exemplificar com uma classe bem simples.
<?php
class teste
{
public $var;
public function teste()
{
$this->var = (string) '125';
return $this->var;
}
}
bem.. nesse caso está escrito no php manual que o comando return encerra imediatamente a execução da função atual e retorna o valor desejado.. então teoricamente se eu chamasse essa classe assim:
<?php
include('classTeste.php');
$teste = new teste();
var_dump($teste);
o var_dump deveria retornar uma string com valor '125'. Mas não é o que acontece.. ele retorna um Objeto da Classe Teste;
e ai ? alguem já enfrentou isso ?
a título de curiosidade.. o seguinte comando funciona:
<?php
class teste
{
public $var;
public function teste()
{
$this->var = (string) '125';
return $this->var;
}
public function __toString() {
return $this->var;
}
}
Mas nesse caso ela funciona por causa do método magico __toString() que automaticamente converte uma chamada do objeto em string.. mas.. enfim.. não era pra esse return estar retornando '125' ??
obrigado ai..
Carregando comentários...