Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal é o seguinte, estou com o seguinte erro no php
Catchable fatal error: Object of class stdClass could not be converted to string in
Isso acontece toda hora que eu vou manipular uma informacao que está em uma seção, por exemplo quando vou dar um echo:
echo ($_SESSION['usuario']);
ou quando vou finalizar a sessao
session_unregister($_SESSION['usuario']);
será que alguem poderia me ajudar?
Todas as funções e construtores de linguagem que trabalham com strings, forçam o cast ("tipo") automaticamente para string. O mesmo vale para inteiros.
Esse seu índice no array superglobal $_SESSION possui um conjunto de informações estruturadas sob um objeto stdClass.
Essa "dummy class" é nativa e vazia. Não têm métodos enumeráveis e nem propriedades. Você pode criar suas propriedades, sempre públicas, em tempo de execução:
$o = new stdClass;
$o -> nome = 'Bruno Augusto'; // Crie a propriedade nome e dei à ela o meu nome
O problema é que justamente por não ter métodos, não possui o método __toString(), que permite retornar uma string quando a classe é usada como string, como o seu echo, por exemplo.
Se você quer apenas depurar esse valor, basta usar var_dump() ou print_r().
Se não for apenas depuração e quiser MESMO retornar uma informação em forma de string e ter a mesma funcionalidade da stdClass, estenda outra classe a partir dela e implemente o método citado:
<?php
class Object extends stdClass {
public function __toString() {
return basename( get_class( $this ) );
}
}
Neste exemplo eu retorno o nome da classe que estender essa Object.
Seja lá qual for o nome da classe ele será retornado. Se estiver usando namespaces, onde os nomes das classes Podem/Ser/Bem/Maiores, o basename() faria retornar só a última parte, no exemplo, o "Maiores".
poste o codigo todo.