Postagens populares

sexta-feira, 29 de abril de 2011

Função empty do PHP e importância de ler a documentação

Um exemplo rápido que me pegou desprevinido por não ler atentamente a documentação: a função empty do PHP retorna TRUE para um array com um indice de valor nulo.

Ex.: ARRAY[ 0 => null ]

Está certo que eu esperava um array vazio, mas na conversão do xml para a aplicação ele criou este índice. Quando verifiquei o que estava acontecendo, primeiramente imprimindo o valor da variável, achei que o teste deveria retornar TRUE pois zero => null = NADA  não é mesmo?

Lendo rapidamente a documentação (no site oficial, SEMPRE) ele afirma que o empty retorna TRUE apenas para um array TOTALMENTE vazio, ou seja:
ARRAY[]. Faz sentido, afinal 0 no array será um índice, e não, NADA.

Por isto, sempre é bom conhecer bem a função que você está utilizando e verificar possíveis outputs que você atribuirá (ou receberá como no meu caso) para as variáveis.

That's it!

segunda-feira, 25 de abril de 2011

Calculo de dias com campos data no POSTGRESQL

Para retirar a quantidade de dias baseada em um campo de data ou timestamp, o POSTGRESQL permite realizar estes cálculos de maneira bem prática.

Como exemplo, tenho o campo locacoes.saida (timestamp da tabela locacoes) de um DVD. Quero calcular quantos dias, até agora, ele esta com o cliente sem levar em conta as horas:

SELECT (CURRENT_DATE - locacoes.saida::date) FROM locacoes;

O resultado desta conta será o total de dias que se passaram da data de saida do DVD. Repare que o TYPECAST  para date é importante, e somá-lo a outro tipo DATE também. Se ao invés disto, vc fizer:

SELECT (NOW() - locacoes.saida) FROM locacoes;

ele retornará algo como: "4 days 17:51:23.338403" que é o tipo INTERVAL no banco, levando em conta as horas.

Existem mais coisas que se pode fazer com datas no POSTGRESQL, leia a seção no manual do postgresql que é muito interessante.


Thats it!

Magazine Luiza