No internet connection
  1. Home
  2. Dúvidas Gerais

Classes e Objetos - PHP.

Por Nubia Gonçalves Tirabassi @NubiaSantos
    2023-09-20 19:37:16.247Z

    Complementando sobre objetos e classes em PHP, esse conteúdo ajuda a compreender melhor sobre o conteúdo.

    Classe
    Uma classe é um conjunto de variáveis e funções relacionadas a essas variáveis. Uma
    vantagem da utilização é poder usufruir o recurso de encapsulamento de informação. Com o encapsulamento
    o usuário de uma classe não precisa saber como ela é implementada, bastando para a utilização conhecer a
    interface, ou seja, as funções disponíveis. Uma classe é um tipo e, portanto não pode ser atribuída a uma
    variável. Para definir uma classe, deve-se utilizar a seguinte sintaxe:
    class Nome_da_classe {
    var $variavel1;
    var $variavel2;
    function funcao1 ($parâmetro) {
    /* === corpo da função === */
    }
    }
    Objeto
    Como foi dito anteriormente, classes são tipos, e não podem ser atribuídas a variáveis.
    Variáveis do tipo de uma classe são chamadas de objetos, e devem ser criadas utilizando o operador new,
    seguindo o exemplo abaixo:
    $variável = new $nome_da_classe;
    Para utilizar as funções definidas na classe, deve ser utilizado o operador “->”, como no
    exemplo:
    $variável->funcao1();
    A variável $this
    Na definição de uma classe, pode-se utilizar a variável $this, que é o próprio objeto.
    Assim, quando uma classe é instanciada em um objeto, e uma função desse objeto na definição da classe
    utiliza a variável $this, essa variável significa o objeto que estamos utilizando.
    Como exemplo da utilização de classes e objetos, podemos utilizar a classe conta, que define
    uma conta bancária bastante simples, com funções para ver saldo e fazer um crédito.
    class conta {
    var $saldo;
    function saldo() {
    return $this->saldo;
    }
    function credito($valor) {
    $this->saldo += $valor;
    }
    }
    $minhaconta = new conta;
    $minhaconta->saldo(); // a variável interna não foi
    // inicializada, e não contém
    // valor algum
    $minhaconta->credito(50);
    $minhaconta->saldo(); // retorna 50
    SubClasses
    Uma classe pode ser uma extensão de outra. Isso significa que ela herdará todas as variáveis
    e funções da outra classe, e ainda terá as que forem adicionadas pelo programador. Em PHP não é permitido utilizar herança múltipla, ou seja, uma classe pode ser extensão de apenas uma outra. Para criar uma classe estendida, ou derivada de outra, deve ser utilizada a palavra reservada extends, como pode ser visto no
    exemplo seguinte:
    class novaconta extends conta {
    var $numero;
    function numero() {
    return $this->numero;
    }
    }
    A classe acima é derivada da classe conta, tendo as mesmas funções e variáveis, com a
    adição da variável $numero e a função numero().
    Construtores
    Um construtor é uma função definida na classe que é automaticamente chamada no momento em que a classe é instanciada (através do operador new). O construtor deve ter o mesmo nome que a classe a que pertence. Veja o exemplo:
    class conta {
    var $saldo;
    function conta () {
    $this.saldo = 0;
    }
    function saldo() {
    return $this->saldo;
    }
    function credito($valor) {
    $this->saldo += $valor;
    }
    }
    Podemos perceber que a classe conta agora possui um construtor, que inicializa a variável
    $saldo com o valor 0.
    Um construtor pode conter argumentos, que são opcionais, o que torna esta ferramenta mais poderosa. No exemplo acima, o construtor da classe conta pode receber como argumento um valor, que seria o valor inicial da conta.
    Vale observar que para classes derivadas, o construtor da classe pai não é automaticamente herdado quando o construtor da classe derivada é chamado

    • 11 respostas
    1. Luana Souza @luanah.souzza
        2023-09-21 16:34:44.795Z

        Obrigada pelo conteúdo, @NubiaSantos

        1. Em resposta aNubiaSantos:
          Janine Oliveira @Janine
            2023-09-20 22:02:50.641Z

            Muito bom!

            1. Em resposta aNubiaSantos:
              Isis Pedroni @isis
                2023-09-21 17:50:31.934Z

                Agradeço pelo conteúdo!

                1. Em resposta aNubiaSantos:
                  Karine Barbosa Farias @KarineBF
                    2023-09-21 20:14:38.499Z

                    Bem informativo e útil.

                    1. Em resposta aNubiaSantos:
                      Ana Karolina Souza @anakarolina
                        2023-09-22 16:58:40.354Z

                        Obrigada por compartilhar! O conteúdo é bem esclarecedor!

                        1. Em resposta aNubiaSantos:
                          @Grasiele
                            2023-09-25 21:04:25.328Z

                            Nubia você tem arrasado nas postagens, obrigada por ajudar isso é muito válido!

                            1. H
                              Em resposta aNubiaSantos:
                              @HelaineRibeiro
                                2023-09-26 11:15:48.744Z

                                ótimo conteúdo

                                1. Em resposta aNubiaSantos:
                                  lira gabriella soares nunes @lira
                                    2023-09-26 11:31:02.593Z

                                    muito útil! obrigada por compartilhar

                                    1. Em resposta aNubiaSantos:
                                      Giselly Rock @gisellyrock
                                        2023-09-26 16:22:03.107Z

                                        Obrigada!

                                        1. Em resposta aNubiaSantos:
                                          Ana Paula Gomes Guimarães @anaapgg
                                            2023-09-29 23:50:19.889Z

                                            Muito bom o conteúdo para melhor aprendizagem, obrigada por compartilhar!

                                            1. Em resposta aNubiaSantos:
                                              Renata Rodrigues @Usarname
                                                2023-10-09 17:02:59.572Z

                                                Muito bom!