fev 122012
 

Pois bem, no desenvolvimento de aplicações em plataforma WEB a codificação de caracteres tende a ser um pesadelo.

Ora toma-se o padrão regional (ISO-8859-1) ora o padrão internacional UTF-8, e aí a coisa complica…

Se todos os elementos da aplicação WEB (nagevador, servidor WEB, servidor de aplicação (PHP) e servidor de banco de dados) não estiverem operando na mesma nota paracerão os acaracteres estranhos…

A solução para usar PHP, HTML e MySQL em UTF-8, padrão que adotamos na academis é:

No header de suas páginas HTML, aponte a codificação UTF-8:

<head>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>

Já na sua aplicação PHP inclua:

     ini_set('default_charset','UTF-8');

O mesmo deve ser feito logo após a conexão com o banco de dados, através do comando:

    mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $nome_da_sua_conexão);

Claro, por fim, configure seu banco de dados mySQL para utilizar a collation:
utf8_general_ci
Pronto, problema -aparentemente- resolvido.

fev 052012
 

Para criar uma função que receba parâmetros, comum que todos sejam obrigatóros:

function soma_numeros($numero1,$numero2)
{
return $numero1+$numero2;
}

Porém há casos em que alguns parametros podem ser opcionais.
Tratemos de duas situações hipotéticas:
1-A função recebe alguns parametros opcionais, de 1 a n desde que saibamos quanto é o n, no exemplo uma função que soma até 5 números:

function soma_numeros($numero1=0,$numero2=0,$numero3=0,$numero4=0,$numero5=0)
{
return $numero1+$numero2+$numero3+$numero4+$numero5;
}

No caso, a função deve ser chamada passando os argumentos de 0 a 5, se nada for passado o retorno será 0, se dois foram passados serão somados.
Vale ressaltar, serão considerados passados em ordem, ou seja, se houver argumentos obrigatórios e opcionais, os obrigatorios devem ficar no inicio e os opcionais no final.
Bem simples!

2-Porém há casos em que é necessário passar um número incerto de argumentos, nesta hipótese temos duas funções nativas do PHP que resolvem a questão:

func_num_args ( ) e func_get_args ( )

A primeira retorna um inteiro que diz quantos argumentos foram passados à função ao passo que a segunda retorna os argumentos, em formato array.

Assim, podemos reescrever nossa função de soma, agora de fato de 0 a n argumentos:

function soma_numeros()
{
 
 for ($i = 0;$i&lt; func_num_args(); $i++)
    {
        $total=$total+func_get_args($i);
    }
return $total;
}

3-Uma última hipótese, necessidade de passar uma série de argumentos complexos sem número definido. Como exemplo: suponhamos que é necessário imprimir a ficha de cadastro de um númexo x de alunos, sendo tal ficha composta de nome, classe, telefone e endereço.

Como fazer?

Simples, misturando as técnicas anteriores, passamos à função um array multi-dimensional, tratando-o dentro da função…simples e direto.