ehs171 0 Denunciar post Postado Abril 16, 2012 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? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Abril 16, 2012 poste o codigo todo. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 16, 2012 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". Compartilhar este post Link para o post Compartilhar em outros sites