Escovando bits em PHP: operações bitwise e uma função debug

Publicado por Marcio Merlone em 01/09/2007

[ Hits: 6.343 ]

Blog: http://merlone.ath.cx

 


Escovando bits em PHP: operações bitwise e uma função debug



As operações bitwise não são muito comuns de serem vistas por aí, poucos programadores as conhecem. Mas são extremamente poderosas devido à sua velocidade de execução.

Pra melhor explicá-las, imagine uma situação onde você tem uma série de chaves liga-desliga para, por exemplo, armazenar opções de um determinado objeto, que possuam valores verdadeiro ou falso. Poderíamos criar uma convenção sobre uma sequência de zeros e uns, onde cada posição teria um significado, por exemplo:

00000

Respectivamente, da direita pra esquerda, para as opções 1, 2, 3, 4 e 5. Portanto, se quiséssemos que somente a opção 2 estivesse ligada, com valor verdadeiro, teríamos:

00010

Bem simples, não? O que já vi fazerem é armazenar esta string no banco de dados. Tendo-se, por exemplo, 54 opções, teríamos uma string de 54 caracteres. Imagine o algoritmo pra testar isto, transformando a string em um array e lendo o elemento número 'N' para saber se a opção está ligada ou não, fora a alocação desnecessária de memória. Apesar de parecer lógico, é ineficiente, existe maneira melhor.

Veja o artigo completo em:

http://merlone.ath.cx/2007/08/08/escovando-bits-em-php-operacoes-bitwise/

Outras dicas deste autor

Escovando bits em PHP - operações bitwise sobre grupos e permissões

Remover espaços no fim de linha - Eclipse

10 regras de ouro para inciar com código aberto

Leitura recomendada

Lista de discussão de desenvolvedores PHP de Minas Gerais

Populate Object - Aumentando a produtividade de forma bastante simples (PHP + formulário HTML)

Integração com PagSeguro no CakePHP 2.x

P4A - PHP For Applications

Gerando QR Code com PHP

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts