Posts com Tag ‘function’

Aprendendo sobre Funções

Publicado: fevereiro 1, 2010 por Stefan Yohansson em PHP + MySQL, Tecnologia
Tags:, ,

Funções… Ah, queridas funções…
Sem elas eu não poderia deixar meus programas mais leves. Aqui vamos dar início a uma base de como não precisar repetir seu código várias vezes e realmente o começo de como fazer um código ficar mais inteligente com o paradigma de Orientação à Objeto. :] ~

Enfim,

Definindo funções
Funções são blocos de códigos pré-definidos e rotulados para que sejam executados quando chamados e podem ou não receber um atributo/váriavel.

COMO ASSIM?

Simples,

function mensagem() {
echo “oi !”;
}

mensagem();

a saída da chamada dessa função é “oi”, se não tivesse o mensagem() ali, abaixo do código… ele nem chegaria a executar.
– Porque?
A função é um bloco de código e ela não é executada a não ser que seja chamada pelo seu nome. Logo, não adianta chamar uma função antes dela ser definida.

MAS PERAI !

pra quê fazer uma função? se eu simplesmente posso digitar

echo “oi”;

pensa aí, se você precisar digitar oi em mil campos de textos [para o exemplo da função mensagem()] e quando você for editar?
no caso da função mensagem, seria só editar ali e onde tivesse “oi” mudaria para o que foi digitado, entenderam?

Então, vamos a um exemplo mais díficil:

#modelo 1 – Criado por Stefan Yohansson
#duas funções e o html

$numero_contador = 0; #define a única variavel usada e seu valor.

function contador_mais($numero_contador) {
$numero_contador++;
return $numero_contador;
} #essa é a primeira função. O que ela faz? apenas soma +1 à nossa variavel, 0 + 1 = 1, e este é o resultado retornado.

function contador_menos($numero_contador) {
$numero_contador–;
return $numero_contador;
} #faz o contrário da de cima, diminui 1 de 0, retornando -1

#chamamos o html !
echo “<html>
<title>Sucessor e Antecessor de Zero !</title>
<link href=\”cont.css\” rel=\”stylesheet\” type=\”text/css\”>
<body>
<div id=\”container\”>
<h2>Sucessor e Antecessor de Zero !</h2>
<a href=\”?area=Aumentar\”>Aumentar</a> – <a href=\”?area=Diminuir\”>Diminuir</a>
<br>
(Aperte os links acima ou os botões abaixo para o número mudar)
<h1>”;

if ($_GET[‘area’]) { #caso tenhamos uma variavel area na URL:

switch($_GET[‘area’]) { #troque para cada valor abaixo
case Aumentar: #caso aumentar
echo contador_mais($numero_contador); #use a função mais
break;
case Diminuir: #caso seja diminuir
echo contador_menos($numero_contador); #use a função menos
break;

case Zerar: #caso zerar.
echo $numero_contador; #chame o valor da variavel
break;

default:
echo $numero_contador;
}

} else {
echo $numero_contador;
}

echo “</h1>
<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Diminuir\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Aumentar\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Zerar\”>
</form>

</div>
</body>
</html>”;

Bem pessoal, reparem que no nosso código se vocês executarem nos seus computadores, veram que temos dois botões (um botão mesmo e outro é um link) e ambos fazem a mesma coisa com os mesmos parametros. :] ~

Bem este é um programa exemplo. Percebam que a função é diferente da função mensagem pois tem algo entre os ().
O que quer dizer isso?
function contador_menos($numero_contador)
isso significa que a função receberá como parametro a variavel $numero_contador.
Se isto não for feito, nada será feito. >D

Caso sua função seja uma função de msg, isso não é preciso, mas caso o usuario vá passar valores que serão executados na função, é mais que preciso.

Enfim, fica de dever de casa fazer um programa que calcule a hipotenusa de um triângulo de lados
h = ?
a = 8
b = 6

Sua saída deve ser algo parecido com o outro programa.
Se quiserem podem postar seus códigos nos comentários e eu avalio-os… ou mandem-me e-mails.

swhite.owl@gmail.com