Parâmetros opcionais em Funções

Tags: , — July 11, 2007 @ 5:43 pm

Este post é um complemento para o próximo post. Como minha intenção era falar sobre funções com número de parâmetros indefinidos, achei melhor postar primeiro sobre funções com parâmetros opcionais, uma vez que, na maioria dos casos, esta solução é suficiente.

Caso precise declarar uma função que receba de 0 a n parâmetros, desde que n seja um quantidade definida, podemos utilizar funções com parâmetros opcionais, estes parâmetros terão um valor padrão (sempre uma constante, nunca uma variável) que será utilizado caso não seja passado nenhum parâmetro à função. Veja o exemplo:

function sayHello ($name = ‘SamuraiDio’)
{
    echo “Hello $name;
}
sayHello (’Paulo Diovani’) ; //imprime ‘Hello Paulo Diovani’
sayHello (); //imprime ‘Hello SamuraiDio’

Os últimos parâmetros que devem ser os opcionais, no caso de mais de um parâmetro.

/*funciona, desde que seja passado o
 *primeiro parâmetro, pelo menos
 */
function sayHello ($name1, $name2 = ‘SamuraiDio’)
{
    echo “Hello $name;
}
/*não funciona, pois a função esperará pelo
*segundo parâmetro,
*e para este ser informado deverá ser
*também informado o primeiro
*/
function sayHello ($name1 = ‘SamuraiDio’, $name)
{
    echo “Hello $name;
}

Este método para declarar funções é muito útil, e geralmente usado em funções de ordenação e afins:

/*ordena o array passado em $array
*em ordem crescente.
*se o segundo parâmetro for passado
*como TRUE, o array será
*ordenado em ordem decrescente.
*/
function arrayOrder (&$array, $desc = FALSE)
{
    if ($desc == FALSE)
    {
        sort($array);
    }
    else
    {
        rsort ($array);
    }
    return ($array);
}

Esse tipo de função, com parâmetros opcionais, geralmente são documentadas da seguinte forma: array arraySort ( array array [, bool desc] )

Meu KDE

Tags: , , — July 6, 2007 @ 4:37 pm

Apenas um ScreenShot do KDE.

KDE + Super Karamba

O painel estilo Mac OSX é o KxDocker, que pode ser obtido aqui, ou por apt-get. A uma nova versão re-escrita do KxDocker com suporte a Real Transparency e Beryl/Compiz, que pode ser obtida aqui, mas ainda não testei esta. Os Widgets da área de trabalho (monitor do sistema e relógio) são providos pelo Super Karamba, que tembém pode ser instalado pelo apt-get:

instalando KxDocker e Super Karamba
# aptitude install kxdocker superkaramba

Os temas do Super Karamba que usei são o Aerio AIO e o ClockMagic.

o Aero AiO trata-se de um monitor do sistema reduzido, com suporte a varios plugins. Para rodar o aplicativo de configuração você também vai precisar do pacore python-qt3:

instalando python-qt3 bindings

# aptitude install python-qt3

Não menos importante… o Wallpaper é uma arte do Deviant Nefis, e pode ser encontrado aqui.

<<< Previous Page