Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Tutorial PHP - POO[2]

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Tutorial PHP - POO[2]

    Opa gente Tudo Bem ?

    Vamos ao complemento do primeiro tutorial sobre POO com php eis aqui o link :
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... ok ?

    Vamos la nesse tutorial iremmos aborda :

    METODO CONTRUTOR.
    METODO DESTRUTOR.
    DEFINIÇÃO DE : PUBLIC, PROTECTED, PRIVATE.

    Vamos brincar

    Metodo Construtor :

    É um bloco de codigo que é executado assim que você instancia a classe, idependente de estar no inicio ou no fim do codigo ele é executado antes de tudo,
    Para criar um construtor é usado o termo __construct , seguido de algumas regrinhas...

    exemplo :

    Código PHP:
    <?php
    //crio classe pessoa.
    class pessoa{
        
    //crio variavel.
        
    var $msg 'Algum problema ?';
        
    //crio a função chama.
        
    function chama(){
            
    //dou um echo na variavel msg.
            
    echo $this->msg;
        }
        
    //crio o construtor.
        
    function __construct(){
            
    //dou um echo em uma string.
            
    echo "Estou aprendendo POO com php <br>";
        }
    }
    //instancio a classe pessoa.
    $pessoa = new pessoa();
        
    //chamo a função chama.
        
    $pessoa->chama();
    ?>
    Resultado :
    Estou aprendendo POO com php
    Algum problema ?
    Reparem que primeiro vou dado o echo na string e depois na variavel msg,
    mesmo estando apos a função chama. e não prescisou nem instanciar , criou instancio a classe ele é a primeira coisa a ser executado como disse anteriormente.

    Agora vejamos um exemplo mais completo :


    Código PHP:
    <?php
    //crio classe pessoa.
    class pessoa{
        
    //crio variavel.
        
    var $connect;
        
    //crio a função verifica.
        
    function verifica(){
            
    //verifico a conexao feita pelo construtor.
            
    if($this->connect false){
                echo 
    "Erro ao Estabelecer conexao.";
            }
            else{
                echo 
    "Conexao estabelecida com sucesso.";
            }
        }
        
    //crio o construtor.
        
    function __construct($host,$user,$pass){
            
    //crio conexao.
            
    $this->connect mysql_connect($host,$user,$pass);
        }
    }
    //instancio a classe pessoa.
    $pessoa = new pessoa('localhost','root','');
        
    //chamo a função chama.
        
    $pessoa->verifica();
    ?>
    Resultado :
    Conexao estabelecida com sucesso.
    Reparem que eu fiz uma conexao mysql depois verifiquei com uma função , e fiz com os parametros tudos certo , lenbrando quando se trata de construtores ja que não são instaciados , os valores dos parametros são dados na classse onde ele fica certo ?

    Caso você não entenda o : function __construct($host,$user,$pass), e o : $pessoa = new pessoa('localhost','root',''), no proximo post falo sobre os parametros :P

    Apos uma breve introdução a construtores , veremos agora os destrutores.

    Metodo Destrutor :

    Metodos Destrutores como tem o papel invertido dos Construtores, ele em vez de ser executado no inicio é executado no final independente de qual sua posição certo ?

    Para criarmos um destrutor ultilizaremos o termo __destruct certo ?
    Exemplo :
    Código PHP:
    <?php
    //crio classe pessoa.
    class pessoa{
        
    //crio variavel.
        
    var $msg 'echo na String da variavel msg';
        function 
    chama(){
            
    //echo na variavel msg.
            
    echo $this->msg;
        }
        
    //crio o destrutor.
        
    function __destruct(){
            
    //echo em string.
            
    echo "<br> echo em String";
        }
    }
    //instancio a classe pessoa.
    $pessoa = new pessoa();
        
    //chamo a função chama.
        
    $pessoa->chama();
    ?>
    Resultado :
    echo na String da variavel msg
    echo em String
    Podemos repara de como dito o destrutor é executado depois de todas a funções que forão instanciadas serem executadas.

    Seguindo o segundo exemplo do construtor, vamos complementalo com o destrutor certo ?

    Código PHP:
    <?php
    //crio classe pessoa.
    class pessoa{
        
    //crio variavel.
        
    var $connect;
        var 
    $close;
        
    //crio a função verifica.
        
    function verifica(){
            
    //verifico a conexao feita pelo construtor.
            
    if($this->connect false){
                echo 
    "Erro ao Estabelecer conexao.<br>";
            }
            else{
                echo 
    "Conexao estabelecida com sucesso.<br>";
            }
            
    //verifica se conexao foi encerrada.
            
    if($this->close false){
                echo 
    "Erro ao fechar Conexao.<br>";
            }
            else{
                echo 
    "Conexao fechada com sucesso.<br>";
            }
        }
        
    //crio o construtor.
        
    function __construct($host,$user,$pass){
            
    //crio conexao.
            
    $this->connect mysql_connect($host,$user,$pass);
        }
        
    //crio o destrutor.
        
    function __destruct(){
            
    $this->close mysql_close();
        }
    }
    //instancio a classe pessoa.
    $pessoa = new pessoa('localhost','root','');
        
    //chamo a função chama.
        
    $pessoa->verifica();
    ?>
    Resultado :

    Conexao estabelecida com sucesso.
    Conexao fechada com sucesso.
    Com esse exemplo deu pra clarea as coisas não ?
    Então vamos a logica :
    O construtor , serviu para cria a conexao mysql,
    depois disso venho a função verifica, que serviu para verificar a conexao e o encerramento da conexao certo ? e finalmente o destrutor encerro a conexao :P.

    Agora depois dos metodos construtores e destrutores vamos agora falar um pouco mais sobre variaveis , algo mais especifico .


    DEFINIÇÃO DE : PUBLIC, PROTECTED, PRIVATE :


    Basicamente PUBLIC, PROTECTED, PRIVATE são os modos de visualisações das variaveis na classe .

    Variavel publica(PUBLIC) :

    Pode ser vista em qualquer ludar do codigo .

    Variavel protegida(PROTECTED) :


    É mais privada , pode ser visualisada apenas na classe mãe e filhas.

    Variavel privada(PRIVATE) :


    É apenas visualisada na sua classe mãe.

    Apos isso vamos ao exemplo.

    Exemplo :


    Código PHP:
    <?php
    //criamos a classe exemplo.
    class Exemplo {
        
    //variavel publica , pode ser ultilizada em qualquer lugar do codigo, dentro e fora da classe.
      
    public $publicInfo 'Sou uma informação pública';
        
    //variavel protegida , pode ser ultilizada apenas na classe mãe e filhas.
      
    protected $protectedInfo 'Sou uma informação protegida';
        
    //variavel privada, pode ser ultilizada apenas na classe mãe.
      
    private $privateInfo 'Sou uma informação restrita';

        
    //função publica.
      
    public function getPublicInfo() {
        echo 
    $this->publicInfo;
      }
        
    //função protegida.
      
    protected function getProtectedInfo() {
        echo 
    $this->protectedInfo;
      }
        
    //função privada.
      
    private function getPrivateInfo() {
        echo 
    $this->privateInfo;
      }
    }
    //instancia a classe.
    $exemplo = new Exemplo;

    //Imprime Sou uma informação pública.
    $exemplo->getPublicInfo();

    //Retorna Fatal error: Call to protected method Exemplo::getProtectedInfo() from context, pois so pode ser ascessada dentro da classe mãe e filhas.
    $exemplo->getProtectedInfo();

    //Retorna Fatal error: Call to private method Exemplo::getPrivateInfo() from context, pois so pode ser ascessada dentro da classe mãe.
    $exemplo->getPrivateInfo();
    ?>

    Esqueci de mencionar, public, protected e private , pode ser aplicados tanbem em funções , como no exemplo acima , ok ?

    Agora depois desse monte texto canssativo , mas escencial para quem quer ser programador em php , vamos falar da melhor parte do PHP oo.

    PARAMETROS EM FUNÇÕES.
    Hospedagem profissional + 50gb de espaço + trafego ilimitado + email com seu dominio (contato@seudominio.com) Por : 11,90 ? Só falar comigo.


  • Font Size
    #2
    Hi.

    Sei que sou chato, mas novamente aqui estou eu. =p

    Tirando os códigos que possuem a classe "pessoa", parabéns por ter feito tudo bonitinho na classe "Exemplo". Seguiu direitinho os padrões que citei no outro tópico hahahh.

    Mas vamos ao que interessa.
    Aqui você validou o atributo $connect da class pessoa:
    Código PHP:
    if($this->connect false){ 
    Bom, na verdade, aí você não está comparando a variável, e sim setando ela. O operador para comparar é ==, ou, se quiser algo mais restrito aos tipos, ===. Por exemplo:
    Código PHP:
    :~$ php -'$a = 0; echo "\$a: {$a}\nif...\n";if($a = true) 0; echo "\$a: {$a}\n";';
    $a0
    if...
    $a
    Mesmo $a sendo 0, você redefine ela dentro do if(), e assim, $a acaba virando 1. Não há comparação, apenas atribuição.

    Postado Originalmente por NICKInhoO' Ver Post

    Variavel protegida(PROTECTED) :


    É mais privada , pode ser visualisada apenas na classe mãe e filhas.

    Variavel privada(PRIVATE) :


    É apenas visualisada na sua classe mãe.
    Classe mãe é a classe de quem uma outra classe herdou as características. Quando você utiliza a keyword protected e private, os atributos e métodos estão restritos à própria classe, e não a classe de quem ela foi herdada.
    Por exemplo:
    Código PHP:
    class Pessoa {
    }

    class 
    Fvox extends Pessoa {
        private 
    $nick 'fvox';

    A classe mãe neste exemplo é Pessoa. O atributo privado $nick é de uso restrito da classe Fvox (ela mesma) e não da classe mãe (Pessoa).

    Obrigado pela matéria. ;-)

    []'s
    Desenvolvedor Perl, PHP, .NET (C#, VB.NET, ASP.NET), Java (J2EE), Shell Script, JavaScript/Ajax, C, amante de Linux e noob.

    twitter | last.fm

    Comment


    • Font Size
      #3
      Se não é chato não colega se amostra '-'
      Mais ta valendo aew suas dicas, obrigado pelo complemento do post :P
      Flw ManoloO' t+
      Hospedagem profissional + 50gb de espaço + trafego ilimitado + email com seu dominio (contato@seudominio.com) Por : 11,90 ? Só falar comigo.

      Comment

      X
      Working...
      X