[Tutorial] Entendendo static
#1

♥ Introduзгo
  • Muitos de vocкs jб devem ter visto a declaraзгo de uma variбvel usando static e feito as seguintes perguntas. "Oque isso faz ?", "Qual a diferenзa de static para new?", "Й realmente mais rбpido usar static ao invйs de new?". Eu jб tive essas dъvidas, e vou ajudar vocк que tem essas dъvidas hoje.
♥ static
  • PHP код:
    /*
    Pergunta: "Й realmente mais rбpido usar static ao invйs de new?"
    Resposta: Pode atй ser, mas й uma via de mгos duplas.
    */ 
    Ambas as variбveis funcionam da mesma forma, mas a forma como elas funcionam por trбs dos bastidores sгo diferentes. Hб nгo ser que sejam declaradas de forma global, caso for global, nгo haverб diferenзa alguma.

    Quando declaramos uma variбvel static ela nгo vai ser destruнda quando a chave for fechada.
    PHP код:
    static i;
    for(
    i100; ++i)
    {
        
    // ...

    Quando declaramos a variбvel i ela veio com o valor padrгo (0). Com o uso do loop, ela terminou tendo o valor de 100.

    Quando o bloco de cуdigo acima for chamado novamente, a variбvel vai iniciar contendo o valor 100, isso pq ela nгo foi destruнda jб que foi definida como static, mesmo com o fechamento das chaves.

    Como a variбvel nгo vai precisar ser recriada, isso vai torna-lб um pouco mais veloz, jб que vai pular uma pequena etapa de alocaзгo.
♥ Via de mгo dupla
  • PHP код:
    /*
    Pergunta: "Entгo usar static seria a melhor opзгo?"
    Resposta: Nгo necessariamente, e vou explicar o pq.
    */ 
    Vamos ver oq acontece quando os dois tipos de variбveis sгo declarados.
    PHP код:
    // static
    {
        static 
    i// O programa aloca um valor X de memуria no sistema na primeira vez que б variбvel й criada.
        
    for(i100; ++i)
        {
            
    //...
        
    }
        
    // Como a variбvel nгo vai ser deletada aqui, a memуria continua alocada.

    PHP код:
    // new
    {
        new 
    i// O programa aloca um valor de memуria X.
        
    for(i100; ++i)
        {
            
    //...
        
    }
        
    // A memуria usada vai ser devolvida para o sistema e a variбvel consequentemente deletada.

    Apesar da variбvel local declara com new sofrer um processo um pouco mais lento do que static, a memуria (RAM) serб liberada de volta ao sistema quando ela nгo for mais ъtil (quando a chave for fechada). Vocк vai economizar mais memуria.

    Vocк pode sim usar static quando quiser, mas lembre-se de que a memуria (RAM) do computador nгo й infinita. Vocк deve usar com sabedoria.
♥ Notas finais
  • ♪ Foi uma explicaзгo bem simples, mas procurei ser bem objetivo e claro.
    ♪ Nгo procurei escrever de forma muito formal e provavelmente haverб erros de escrita, mas os que forem reportados vou corrigir.
    ♪ Qualquer dъvida estarei respondendo.
Reply


Messages In This Thread
Entendendo static - by RiqueP - 30.12.2016, 13:34
Re: Entendendo static - by KinG7 - 30.12.2016, 14:12
Re: Entendendo static - by CaioTJF - 30.12.2016, 14:17
Re: Entendendo static - by RiqueP - 30.12.2016, 15:07
Re: Entendendo static - by Sky™ - 30.12.2016, 23:53
Re: Entendendo static - by RiqueP - 31.12.2016, 00:04
Re: Entendendo static - by luandriftlogkdr - 31.12.2016, 00:53
Re: Entendendo static - by RiqueP - 31.12.2016, 01:21
Re: Entendendo static - by Dominguinhos - 17.01.2017, 20:33

Forum Jump:


Users browsing this thread: 1 Guest(s)