Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida básica com __construct


Rodrigo^^v

Pergunta

Olá. Estou aprendendo php.

Então, eu fiz um script bem básico para listar os usuários do db

O código abaixo funciona perfeitamente.

Logo, não achei de suma importância postar o código da função, até porque não acho que o erro esteja aí.

usuario.php

require_once ('conectadb.php');
    class Usuario{
        public function listaUsuarios(){ . . . }
    }
    $usuario = new Usuario;
    $opcao = $_GET['to'];
    switch ($opcao){
                case "consulta":
                    $usuario->listaUsuarios();
                    break;
    }
Depois de ver que o código acima funcionava 100% sem erros, resolvi fazer um __construct. O código ficou assim... usuario.php
require_once ('conectadb.php');
    class Usuario{
        public function  __construct() {
            self::toFunction($_GET['to']);
        }

        public function toFunction($opcao){
            switch ($opcao){
                case "consulta":
                    self::listaUsuarios();
                    break;
            }
        }
        public function listaUsuarios(){ . . . }
    }

Com essa alteração, quando o link é usado, a página fica em branco como se a classe não tivesse código ou seja lá qual for a explicação.

Só não aparece nada na página.

Logo imaginei que, ou eu fiz o __contruct de modo errado, ou o self:: não tem nada a ver com nada.

De qualquer forma eu não sei muito de php -.-

Agradecido de qualquer ajuda futura :blush:

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Rodrigo, tente substituir o self por $this->:

require_once ('conectadb.php');
    class Usuario{
        public function  __construct() {
            $this->toFunction($_GET['to']);
        }

        public function toFunction($opcao){
            switch ($opcao){
                case "consulta":
                    $this->listaUsuarios();
                    break;
            }
        }
        public function listaUsuarios(){ . . . }
    }

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado ^^

Eu testei aqui o/

Mas continua na mesma =/

Para tirar qualquer dúvida eu postarei a função listar...

public function listaUsuarios(){
            $i = 0;
            $sql = mysql_query("SELECT * FROM usuarios ORDER BY usuario")
                                or die ('SQL Error: ' . mysql_error()); ?>
            <table cellspacing="4">
                <tr>
                    <td></td>
                    <th>Usu&aacute;rio</th>
                    <th>Senha</th>
                </tr>
      <?php while ($listaUsuario = mysql_fetch_array($sql)){
                echo "<tr>" .
                     "<td>" . ++$i . "." .
                     "<td>" . $listaUsuario['usuario'] . "</td>" .
                     "<td>" . $listaUsuario['senha'] . "</td>" .
                     "<td> <a href='altera.php?id={$listaUsuario['id']}'> Altera </a>" .
                     "<td> <a href='?to=excluir&id={$listaUsuario['id']}'> Excluir </a>" .
                     "</tr>";
            } ?> </table> <?php
        }

Link para o comentário
Compartilhar em outros sites

  • 0

Segue abaixo:

sb.php

<?php

class Usuario
{
    public function  __construct() 
    {
        $this->toFunction($_GET['to']);
    }
    
    public function toFunction($opcao)
    {
        switch ($opcao)
        {
            case "consulta":
                $this->listaUsuarios();
            break;
            default:
                echo 'OLA MUNDO';
            break;
        }
    }
    
    public function listaUsuarios()
    {
    
    }
}

error_reporting(E_ALL & ~E_NOTICE | E_STRICT);
new Usuario();

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado, ursolouco.

Isso funcionou.

Nem vou comentar como fiquei irritado quando vi que era só colocar new Usuario; ¬¬

Era só criar o objeto ¬¬

Aproveitando o post, queria saber o que essa linha faz:

error_reporting(E_ALL & ~E_NOTICE | E_STRICT);

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...