Click here to load reader
Upload
sergiohenrique
View
465
Download
0
Embed Size (px)
Citation preview
Aula 4 PHP
Funções
Definição de Função
• São trechos de códigos que podem realizar qualquer tipo de tarefa, como por exemplo, somar dois números, testar se o valor de uma variável é válido, etc.
• São muito úteis para deixar o código mais organizado e modular.
• Podem ser chamadas a qualquer momento da execução de um programa.
Sintaxe
function nome_função(arg1 , arg2, arg3 ... argn)
{comandos
[ return <expressao> ]
}
Exemplo
<?phpfunction soma_valores ($valor1, $valor2, $valor3){
$soma = $valor1 + $valor2 + $valor3;echo “ A soma dos valores $valor1, $valor2 e $valor3”;echo “é $soma”;
}$n1 = 10;$n2 = 20;$n3 = 50;soma_valores($n1, $n2, $n3);?>
• Note que as variáveis que são passadas como parâmetros não precisam ter o mesmo nome dos argumentos definidos na função.
• A função apresentada não utiliza o comando return.
Utilizando o comando return
• O comando return devolve para o ponto de chamada da função o valor da variável ou expressão que aparece imediatamente após esse comando. Desse modo, podemos atribuir a uma variavel o valor retornado de uma função.
<?phpFunction maiusculo($string){
$string = strtoupper($string);$string = str_replace(“á”, “Á”, $string);$string = str_replace(“é”, “É”, $string);$string = str_replace(“í”, “Í”, $string);
$string = str_replace(“ó”,”Ó”, $string);$string = str_replace(“ú”, “Ú”, $string);$string = str_replace(“â”, “”, $string);$string = str_replace(“ê”, “Ê”, $string);$string = str_replace(“ô”,”Ô”, $string);$string = str_replace(“î”, “Δ, $string);$string = str_replace(“û”, “Û”, $string);$string = str_replace(“ã”, “Ô, $string);$string = str_replace(“õ”,”Õ”, $string);$string = str_replace(“ç”,”Ç”, $string);$string = str_replace(“à”,”À”, $string);return $string;
}$nome = “José Antônio”;$nome_m = maiusculo($nome);echo “O nome em letras maiusculas : $nome_m”;?>
• strtoupper – Transforma uma string em letras maiusculas. Porém, dependendo da versão, esse comando não transforma caracteres acentuados.
• str_replace – Faz a substituição de determinada parte da string por outro dentro de uma variável.
Ambos podem ser encontrados no manual do php.
• Uma função pode também, em vez de retornar um único valor, retornar um array contendo vários elementos.
<?phpFunction clubes(){
$clubes[] = “Grêmio”;$clubes[] = “Palmeiras”;$clubes[] = “Vascão”;$clubes[] = “Atlético Mineiro”;$clubes[] = “Bahia”;return $clubes;
}
$nomes = clubes();For ($i=0; $i < sizeof($nomes); $i++){
echo “A variavel nomes vale “.$nomes[$i].”<br>”;}?>
Passagem de parâmetros: valor e referência
• Quando passamos uma variável como argumento por padrão estamos passando apenas o valor dela. Qualquer alteração feita dentro da função não se reflete sobre a variável no programa principal. Chamamos este processo de passagem de parâmetros por valor.
• Existem funções em que queremos que a variável passada como argumento seja alterada conforme as alterações feitas durante a execução da função. Este processo é chamado de passagem de parâmetros por referência.
• A passagem de parâmetros por referência requer que seja colocado o símbolo ‘&’ antes do nome da variável.Exemplo:
<?phpfunction dobro($valor){
$valor = 2 * $valor;}function duplica(&$valor){
$valor = 2*$valor;}$valor = 5;dobro($valor);echo $valor. “<br>”;duplica($valor);echo $valor;?>
Valores padrão
• Se uma função possui determinado parâmetro e no momento da chamada esse parâmetro não é enviado, podemos utilizar valores-padrão.
• Para definir esses valores, basta colocar um operador de atribuição após o parâmetro definido na função.
• Os valores-padrão devem ser sempre os últimos parâmetros definidos na função.
• Exemplo:
<?php
function teste($time, $titulo = “Campeão Mundial”)
{
echo “o $time é $titulo<br>”;
}
teste(“Flamengo”, “Campeão Carioca”);
teste(“Atlético”, “Campeão Mineiro”);
teste(“Vasco”);
?>
Funções recursivas
• Chamamos de funções recursivas aquelas funções que chamam a elas mesmas.
Exemplo<?php
function teste($valor){
if($valor!=0){
echo “Foi chamada a função teste passando o valor $valor<br>”;teste($valor-1);
}}teste(7);
?>