You are on page 1of 18

O que PHP ? A linguagem de programao PHP, foi criada em outono de 1994, por Rasmus Lerdorf.

. No inicio era apenas alguns scripts usados para criao de pginas dinmicas que Rasmus utilizava para monitorar os acessos em seu curriculo na internet. Mas a ferramenta foi crescendo em funcionalidades, ento Rasmus escreveu uma implementao em C, que permitia as pessoas desenvolverem de forma muito mais simples suas aplicaes web. Depois disso, muita coisa aconteceu, e chegamos at hoje, e no sabemos onde vamos parar. Quem quiser saber mais sobre a histria do PHP, pode estar pesquisando no www.google.com.br.

Conhecendo o PHP
Um arquivo em PHP, tem como extenso o .php, mas existem algumas outras extenses que podem ser usadas para facilitar a organizao dos arquivos. .php -> Arquivo em PHP. .class.php -> Arquivo em PHP que contem uma classe. .inc.php > Arquivo em PHP a ser incluido, as vezes contem uma configurao. Hoje em dia, trabalhamos mais com a extenso .php, mas se algum dia vocs se depararem com programas feito alguns anos atrs, no se espante se ver extenses como .php3 e .php4 que correspondem as verses mais antigas do nosso querido e amado PHP. E por ultimo, mas no menos importante, temos tambm a extenso .phtml que informa que o arquivo contem PHP e HTML. Como comear um cdigo ? Bom, agora vamos realmente comear a fazer algo em php, primeiro, abra um editor de texto, se voc usa windows, pode ser o notepad mesmo. Bom, todo programa em php, deve comear com <?php e terminar com ?>.

1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11

<?php //Seu Cdigo ?>

Vocs devem ter reparado que eu usei //, isso um comentrio, ento antes de continuar, vamos falar um pouco de como comentar o seu cdigo.

<?php //Comentrio de uma linha s. /* Comentrio de muitas e muitas linhas. */ ?>

Tipos de comandos de saida (output)


Vou mostrar os comandos de saida, ou seja, o que vai ser impresso na sua tela. Comando echo Imprime uma ou mais variaveis.

1 2 3 4

<?php

echo Ol mundo!; ?>

5
O que vai ser impresso na tela: Ol mundo! Comando print Imprime uma string.

1 2 3 4 5

<?php print (Ol Mundo!) ?>

O que vai ser impresso na tela: Ol mundo! Comando var_dump Mostrar uma representao estruturada sobre uma ou mais expresses, incluindo o tipo e o valor. Arrays e objetos so explorados recursivamente com valores identados na estrutura mostrada.

1 2 3 4 5 6

<?php $vetor = array(Primeiro, Segundo, Terceiro, Quarto); var_dump($vetor); ?>

O que vai ser impresso na tela: array(4) { [0]=> string(8) Primeiro [1]=> string(7) Segundo [2]=> string(8) Terceiro [3]=> string(6) Quarto } Comando print_r Imprime informao sobre uma varivel de forma legvel.

1 2 3 4 5 6

<?php $vetor = array(Primeiro, Segundo, Terceiro, Quarto); print_r($vetor); ?>

O que vai ser impresso na tela: Array ( [0] => Primeiro [1] => Segundo [2] => Terceiro [3] => Quarto )

Trabalhando com variveis


As variaveis so uma forma de representar um valor e so composta de memrias que armazenam informaes. Estas informaes podem variar ao logo de um programa em PHP. Para criar uma vriavel em PHP, precisamos dar um nome de identificao, SEMPRE precedido pelo $. E o nome NUNCA pode comear com um numero $1variavel ou $123, para ser valida a funo tem que comear com uma LETRA, o resto da vriavel pode conter nmeros. Veja os exemplos a seguir:

1 2 3

<?php

$meutwitter = @renanmpimentel; //Todo final de comando no PHP, tem que ser separado por ;

4 5 6 7 8 9

//Vamos imprimir o resultado na tela echo $meutwitter; ?>

O que vai ser impresso na tela: @renanmpimentel Nunca utilize caracteres especiais; Evite criar nomes muitos grandes para variaveis por questo de clareza nos cdigos; Crie nomes significativos, pois isso vai ajudar na manuteno futura. O PHP case sensitive, ou seja, sensvel a letras maiscula e minscula. Ento muito importante, sempre estar atento ao declarar vriaveis e nomes de funes, porque a vriavel $variavel diferente da vriavel $Variavel. Assim como em outras linguagens de programao possivel passar o valor de uma vriavel para outra, sendo criada uma nova rea de armazenamento na memria.

1 2 3 4 5 6 7 8 9

<?php $valor01 = 10; $valor02 = $valor01; //Imprimindo os valores na tela echo $valor02; ?>

O que vai ser impresso na tela: 10.

Tipos de variveis

Tipo string, o tipo mais comum, que se trata de um conjunto de caracteres alfanumricos. Para declarar uma string simples, basta utilizar aspas simples ou aspas dulas , veja o exemplo:

1 2 3 4

<?php $variavel = Uma string com aspas simples; $Variavel = Uma variavel com aspas duplas; ?>

Se vocs repararem, eu declarei duas variveis com o mesmo nome, mas de formas diferentes, lembra do case sensitive? Ento, a primeira varivel com tudo minusculo e a segunda varivel com a primeira letra maiscula, sendo assim, uma diferena, sempre bom manter a ateno nesses detalhes na hora de nomear as variveis.

Tipo nmerico, no tem muito o que explicar, o proprio nome j diz tudo, vamos ver alguns exemplos mais comuns:

1 2 3 4 5 6

<?php //String de numero decimal $decimal = 1234; //String de numero negativo $negativo = -1234;

7 8 9 10

//String de ponto flutuante $flutuante = 1.234; ?>

Existem outras formas de expressar uma string nmerica, mas so poucas usadas, para quem encontrar alguma dvida o site www.php.net pode ajudar. As outras formas so octal,hexadecimal e etc.

Tipo array, um mapa ordenado, ou seja, uma lista de valores que ficam armazenados na memoria, e que pode ser de todos os tipos (de variveis), e podem ser acessados a qualquer momento, pois cada valor relacionado com uma posio (ou chave). Voc pode manipular o array adicionando novos valores, vamos ver isso em postagens futuras. Vamos ver um exemplo:

1 2 3 4 5 6 7 8 9 10

<?php $array = array (Primeiro,Segundo,Terceiro,Quarto) /* No array, cada espao uma posio, ento, no caso ali, o Primeiro o primeiro e por assim vai (...) */ echo $array[0] ; ?>

O que vai ser impresso na tela: Primeiro. Vocs devem estar se perguntando, ele colocou $array[0]; e o resultado foi Primeiro. Mas, o que devemos ter em mente que a o array comea a contar do 0 [zero] e no do 1 [um].

Tipo booleano, uma vriavel que expressa um valor lgico, que pode ser verdadeiro ou falso. Para mostrar como funciona a varivel booleano vamos usar um bloco de condio [ns vamos ver isso mais pra frente]. No exemplo que vou mostrar a seguir, precisamos declarar se ela verdadeira (usamos true) ou falsa (usamos false). Ento:

1 2 3 4 5 6 7 8 9 10

<?php //Vamos dar valor a varivel $verdadeiro = TRUE; //usar bloco de condio if($verdadeiro) { echo Meu twitter @celso1704; } ?>

O que vai ser impresso na tela: Meu twitter @celso1704. Tipo constantes, como acontece na maioria das linguagens de programao, o PHP tambm permite o uso de constantes. Como o prprio nome diz, constantes so inicializadas uma vez e no podem ter seus valores alterados durante a execuo do programa. Veja o exemplo:

1 2 3 4 5 6

<?php //Para definir uma constante vamos usar a funo define() define(constante, 10); echo constante; ?>

O que vai ser impresso na tela: 10.

Tipo objeto, uma entidade com um determinado comportamento definido por seus mtodos (aes) e propriedades (dados). Para criar um objeto deve-se utilizar o operador new. Veja o exemplo:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

<?php class Carro { var $velocidade; function medir() { echo Velocidade do carro {$this->velocidade}km/h; } } $obj = new Carro; $obj->velocidade=90; $obj->medir(); ?>

O que vai ser impresso na tela: Velocidade do carro 90km/h. Tipo NULL, quando usamos o valor NULL significa que a varivel no tem valor. E consequentemente,NULL o nico valor do tipo NULL Tipo callback, uma das funes que aceita um parmetro que significa uma funo a ser executada, o parmentro callback pode ser o nome de uma funo ou um mtodo de um objeto a ser executado, representado por um array.

1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

<?php //Usando uma funo function funcao_callback() { echo 'Ol estou aprendendo PHP!'; } call_user_func('funcao_callback'); ?>

O que vai ser impresso na tela: Ol estou aprendendo PHP!

<?php // Exemplo de mtodo callback class MinhaClass { static function CallbackMethod() { echo 'Ol estou aprendendo PHP!'; } } //Chamada de mtodo esttico da classe call_user_func(array('MinhaClass', 'CallbackMethod')); echo "<br>"; //Chamada de mtodo de objeto $obj = new MinhaClass(); call_user_func(array($obj, 'CallbackMethod')); ?>

O que vai ser impresso na tela: Ol estou aprendendo PHP! Ol estou aprendendo PHP!

Como ver qual o tipo da varivel


Usando a funo gettype, ns conseguimos obter o resultado do tipo da varivel passada como parmetro.

1 2 3 4 5 6 7 8

<?php echo gettype(102).'<br>'; echo gettype(true).'<br>'; echo gettype(' ').'<br>'; echo gettype(null).'<br>'; echo gettype(array()).'<br>'; echo gettype(new stdclass()); ?>

O que vai ser impresso na tela: integer boolean string NULL array object

Programando em PHP #3 Tipos de Operadores


Vamos comear a falar um pouco de operadores, temos 4 tipos: atribuio, aritmticos, relacionais e lgicos. Vamos conhecer eles melhor ento: - Operador Aritmtico, o mais conhecido entre todos, porque so os operadores utilizados em clculos matemticos do nosso dia-a-dia. + -> Soma; - -> Subtrao; * -> Multiplicao; / -> Diviso; % -> Mdulo (resto da diviso). Operaes simples:

1 2 3 4 5 6

<?php //Definir valor da varivel $soma = 20; //Vamos somar com mais 10 echo $soma + 10; ?>

Vai ser impresso na tela: 30 Agora para operaes mais complexas, procure sempre utilizar parnteses, para separar as prioridades aritmtricas. Nas operaes em uma expresso algbrica, devemos obedecer a seguinte ordem: Potenciao ou Radiciao Multiplicao ou Diviso Adio ou Subtrao

Observaes quanto prioridade: Antes de cada uma das trs operaes citadas, deve-se realizar a operao que estiver dentro

dos parnteses, colchetes ou chaves. A multiplicao pode ser indicada por ou por um ponto ou s vezes sem sinal, desde que fique clara a inteno da expresso. Muitas vezes devemos utilizar parnteses quando substitumos variveis por valores negativos.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

</pre> <?php //Vamos definir valor de a $a = 5; //Vamos definir valor de b $b = 2; //Uma operao um pouco mais complexa sem utilizar parnteses echo $a+5*10+$b/2; //56 //Agora utilizando parnteses echo ($a+5)*(10+$b/20); //110 ?> <pre>

O que vai ser impresso na tela: 26 110 Ou seja, so valores totalmente diferentes, ento, sempre bom tomar cuidado com o tipo de operao que est realizando. - Operador de Atribuio, o mais simples de se entender. utilizado para atribuir um valor na definio de uma varivel, o operador bsico =. Veja alguns exemplos:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

<?php /* Vamos utilizar os quatros (4) operadores bsicos da matemtica em conjunto. <strong>+</strong> -> Soma; <strong>-</strong> -> Subtrao; <strong>*</strong> -> Multiplicao; <strong>/</strong> -> Diviso; <strong>%</strong> -> Mdulo (resto da diviso). */ //Definimos valor 10 (dez) para todas as variveis $variavel_soma = 10; $variavel_substracao = 10; $variavel_multiplicacao = 10; $variavel_divisao = 10; //Usando o operador de atribuio $variavel_soma += 2; // Soma 2 na varivel $variavel_substracao -= 2; // Subtrai 2 na varivel $variavel_multiplicacao *= 2; // Multiplica varivel por 2 $variavel_divisao /= 2; // Divide varivel por 2 //Vamos imprimir na tela, vamos usar o comando do HTML para pular linha. echo $variavel_soma;;

23 24 25 26 27 28 29

echo $variavel_substracao; echo $variavel_multiplicacao; echo $variavel_divisao; ?>

O que vai ser impresso na tela: 12 8 20 5 - Operador Relacional, utilizado para realizar comparaes entre valores ou expresses, resultando sempre um valor boolean (TRUE ou FALSE). Vamos ver os tipos de comparadores usados no PHP e em muitas outras linguagens: Operadores de comparao

Exemplo
$a == $b $a === $b

Nome Igual Idntico Diferente Diferente No idntico Menor que Maior que Menor ou igual Maior ou igual

Resultado
Verdadeiro (TRUE) se $a igual a $b. Verdadeiro (TRUE) se $a igual a $b, e eles so do mesmo tipo (introduzido no PHP4). Verdadeiro se $a no igual a $b. Verdadeiro se $a no igual a $b. Verdadeiro de $a no igual a $b, ou eles no so do mesmo tipo (introduzido no PHP4). Verdadeiro se $a estritamente menor que $b. Verdadeiro se $a estritamente maior que $b. Verdadeiro se $a menor ou igual a $b. Verdadeiro se $a maior ou igual a $b.

$a != $b
$a <> $b $a !== $b $a < $b $a > $b $a <= $b $a >= $b

Vamos ver a seguir alguns exemplos com testes lgicos. No primeiro caso, vamos declarar duas variveis de tipos diferentes, uma integer e a outra string.

1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4

<?php $variavel01 = 100; $variavel02 = "100"; //Vamos usar uma estrutura de controle chamada if if($variavel01 == $variavel02){ echo "As duas so iguais"; } else{ echo "As duas so diferentes"; } ?>

Vai ser impresso na tela: As duas so iguais. Agora vamos ver se elas so do mesmo tipo, usando ===:

<?php $variavel01 = 100; $variavel02 = "100"; //Vamos usar uma estrutura de controle chamada if

5 6 7 8 9 10 11 12

if($variavel01 === $variavel02){ echo "As duas so do mesmo tipo"; } else{ echo "As duas so de tipos diferentes"; } ?>

Vai ser impresso na tela: As duas so de tipos diferentes. O PHP considera o valor 0 (zero) como sendo falso em comparaes lgicas. Por isso para evitar alguns erros de semntica em retorno de valores calculados por funes que podem retornar tanto um valor booleano ou inteiro, podemos utilizar alguns operadores de comparao:

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

<?php $valor = 0; //0 (zero) sempre igual a FALSE if($valor == FALSE){ echo " falso"; } ?>

Vai ser impresso na tela: falso.

<?php $valor = 0; //Para ver qual o tipo da variavel if($valor === FALSE){ echo " tipo FALSE"; } ?> <?php $valor = 0; //Para ver se a variavel igual a 0 (zero) e do mesmo tipo que 0 (zero) if($valor === 0){ echo "0 (zero)"; } ?>

Vai ser impresso na tela: tipo FALSE.

Vai ser impresso na tela: 0 (zero). - Operador Lgico, utilizado para combinar expresses lgicas entre si, agrupando testes condicionais. Operadores Lgicos

Exemplo
$a and $b $a or $b $a xor $b ! $a $a && $b $a || $b

Nome E OU XOR NO E OU

Resultado
Verdadeiro (TRUE) se tanto $a quanto $b so verdadeiros. Verdadeiro se $a ou $b so verdadeiros. Verdadeiro se $a ou $b so verdadeiros, mas no ambos. Verdadeiro se $a no verdadeiro. Verdadeiro se tanto $a quanto $b so verdadeiros. Verdadeiro se $a ou $b so verdadeiros.

Vamos fazer um exemplo bem banal, mas que vai ser fcil para todos ns:

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7

<?php $calor = TRUE; $ferias = TRUE; if($calor and $ferias){ echo "Vou para praia"; } ?>

Vai ser impresso na tela: Vou para praia.

$calor = TRUE; $ferias = TRUE; if($calor xor $ferias){ echo "Eu queria estar na praia"; } ?>

Vai ser impresso na tela: Eu queria estar na praia.

Programando em PHP #4 Estrutura de Controle (parte 1)


Estrutura de Controle (Parte 1)
Hoje vamos falar sobre estruturas de controle. O que vai ser vai nos ajudar bastante. Ento, sem mais delongas, vamos por mo na massa. A nossa primeira estrutura de controle o if, como em todas as linguagens de programao, ela uma estrutura que introduz um desvio condicional, ou seja, um desvio de execuo natural do programa. Em outras palavras, se a condio dada pela expresso for satisfatria, ser executado um bloco de comandos, caso a condio no seja satisfatria, o bloco de comando ser ignorado. Na lgica de programao ficaria assim: SE (comandos) ENTO {comandos}. E quando a expressao no for satisfatria e voc precise mostrar um resultado ou executar outro bloco de comandos, usamos o else. Na lgica de programao ficaria assim: SE (comandos) ENTO {comandos} CASO CONTRARIO {comandos}.

Veja um exemplo real:


1 2 3 4 5
<?php $a = 5; $b = 10;

if($a+$b==15){ echo Resposta Correta!

6 7 8 9 10 11

} else{ echo Resposta Errada!; } ?>

O que vai ser impresso na tela: Resposta Correta! Agora, com um pouco mais de ateno, vamos realizar algumas comparaes encadeadas, ou seja, if dentro de if.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11

<?php $nota = 8; $faltas = 25; //Para passar de ano o aluno tem que ter media //acima de 6 e ter menos de 30 faltas if($nota >= 6){ if ($faltas <= 30){ echo Aluno Aprovado!; }else{ echo Aluno reprovado por faltas; } } else { echo Aluno reprovado por notas; } //Aqui foi apenas um exemplo simples de como //podemos aplicar isso no nosso dia-a-dia. ?>

O que vai ser impresso na tela: Aluno Aprovado! E podemos fazer tudo isso em apenas um if, usando o operador AND

<?php $nota = 8; $faltas = 25; if( ($nota >= 6) AND ($faltas <= 30) ){ echo Aluno Aprovado!; } else{ echo Aluno Reprovado!; } ?>

O que vai ser impresso na tela: Aluno Aprovado! #Dica Vou mostrar rapidinho como usar o if inline que vai deixar o seu cdigo mais bonito.

1 2 3 4 5

<?php $nota = 7; if ($nota >= 6){ $resultado = Aprovado; }else{ $resultado = Reprovado; }

6 7 8 1

?>

Agora, vamos fazer tudo isso em uma linha s, o que acham?

$resultado = ($nota >= 6) ? Aprovado : Reprovado;

A primeira condio a expresso a ser avaliada; a segunda o valor atribudo caso ela seja verdadeira e a terceira o valor atribudo caso ela seja falsa. A prxima estrutura a ser estudada o switch, que uma estrutura que simula uma bateria de testes sobre uma varivel. muito parecido com o if, que nada mais do que uma srie de comandos if sobre uma varivel. A gente usa quando precisamos comprar uma varivel com vrios valores, ento ao invs de usar vrios ifs a gente usa apenas um switch.

Vou fazer dois exemplos um de forma errada usando if e outra de forma correta usando switch. Usando if

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

<?php $valor = 0;

if($valor == 0){ echo 0; } elseif($valor == 1){ echo 1; } elseif($valor == 2){ echo 2; } elseif($valor == 3){ echo 3; } elseif($valor == 4){ echo 4; } else{ echo no igual a nenhum numero; } ?>

22
Agora vamos a forma correta, usando switch

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

<?php $valor = 0; switch ($valor){ case 0: echo 0; break; case 1: echo 1; break; case 2: echo 2; break; case 3: echo 3; break; case 4: echo 4; break; default: echo no igual a nenhum numero; } ?>

Ento, ele l assim, caso a varivel seja 0, ele vai mostrar zero, caso seja 1, ele vai mostrar um, e assim por diante. O que mostra que o switch muito melhor para fazer esse tipo de controle.

Desafio #1
01 Fazer um script que leia um valor (uma varivel) de uma conta de luz e, caso o valor seja maior que R$ 50,00 apresente a mensagem: Voc est gastando muito. Caso contrrio exiba a mensagem: Seu gasto foi normal. 02 Leia um numero inteiro e mostre uma mensagem indicando se este nmero positivo ou negativo, e em seguida se o mesmo nmero par ou mpar. 03 Crie um script de opes (usando switch) com 3 opes, se o valor da varivel for 1 (um) imprimir na tela Bom dia, se for 2 (dois) imprimir na tela Boa Tarde, se for 3 (trs) imprimir na tela Boa Noite e se for digitado outro numero qualquer, mostrar na tela Opo no encontrada. Boa sorte pessoal!

Programando em PHP #4 Estrutura de Controle (Final)


Bom galera, segunda-feira de carnaval, estou eu aqui, dando sequncia a nossa maravilhosa serie#ProgramandoPHP. Como a gente pode ver no ultimo post o assunto abordado era estruturas de controle. Ento para finalizar esse tpico hoje eu vou mostrar o que falta do conteudo.

While

O While uma estrutura de controle similar ao IF. Da mesma forma, possui uma condio para executar um bloco de comandos. A grande diferena que o While estabele um lao de repetio, ou seja, enquanto a condio for vlida, ele vai ser executado repetitivamente. Este comando pode ser interpretado como ENQUANTO (condio) FAA {comandos}. Exemplo:

1 2 3 4 5 6 7 8

<?php $numero = 10; while ($numero < 100){ echo $numero."-"; $numero+=10; } ?>

O que vai ser impresso na tela: 10-20-30-40-50-60-70-80-90No exemplo acima, o comando While est avaliando a condio, lendo de forma literal: Se $numero for menor que 100. Pronto, 10 menor que 100, ento executa o bloco de comando. E logo depois de imprimir o valor da varivel na tela, ela incrementada com +10. Ento, a proxima comparao j vai ter outro valor, pois a varivel $numero agora est com o valor 20, e assim vai ate que a condio no seja mais verdadeira. E para quem no conhecia a forma de concatenar no php, basta colocar .".

For
uma estrutura de controle que estabelece um lao de repetio baseado em um contador, segue a mesma ideia do While, s que a forma de verificar a condio diferente. O For controlado por um bloco de trs comandos, que vo estabelecer uma contagem, ou seja, o bloco de comandos vai ser executado a quantidade de vezes que for pedido. Vamos faze um contador de exemplo:

1 2 3 4 5 6

<?php $i=0; for($i=1; $i <= 10; $i++){ echo $i; } ?>

O que vai ser impresso na tela: 12345678910 No exemplo acima, temos 3 (trs) expresses, a primeira ($i = 0) o valor inicial da varivel contadora; a segunda ($i <= 10) a condio de execuo. Enquanto a condio for verdadeira o lao de repetio vai ser executado; e a terceira ($i++) o valor a ser incrementado aps cada execuo.

Foreach
um lao de repetio para arrays ou matrizes. um for, s que com uma forma mais facil de trabalhar, porque ele decompe um vetor ou matriz em cada um de seus elementos por meio de sua clusula AS. Exemplo:

1 2 3 4 5 6 7

<?php $cor = array ("azul", "amarelo" , "verde", "rosa") foreach($cor as $mostrar){ echo $mostrar ."-"; } ?>

O que vai ser impresso na tela: azul amarelo verde rosa -

Bom, para uma segunda-feira de carnaval est bom, e com isso terminamos o tpico de Estrutura de Controle, na prxima segunda-feira teremos uma novidade. At l pessoal!

Programando em PHP #5 Funes


Bom, agora que j vimos o bsico do PHP, podemos comear a brincar um pouco de programar de verdade, hoje vou abordar um assunto muito legal, que FUNES. Uma funo, vai ser nada menos, que uma forma rapida de execurtamos um comando ou alguma verificao. Ou seja, j imaginou se toda vez que a gente quiser descobrir qual o valor da multiplicao de dois numeros, vamos ter que declarar as variveis especificas para cada nmero, e repetir vrias vezes se houver necessidade, sendo assim, a quantidade de variveis vai s aumentar, vamos ver um exemplo:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

<?php //Vou colocar 3 formas de fazer uma multiplicao, sem o uso de uma funo // Primeira $a = 2; $b = 3; echo "O resultado : ". $a * $b ."<br>"; //Segunda echo "O resultado : ". 2 * 3 ."<br>"; //Terceira $valor01 = 2; $valor02 = 3; $resultado = $valor01 * $valor02; echo "O resultado : ". $resultado; ?>

* Existem outras formas de representar essa multiplicao, mas acredito que essas sejam as mais comuns. O que vai ser impresso na tela: O resultado : 6 O resultado : 6 O resultado : 6 A gente pode perceber, que usamos variveis diferentes, porque estamos dentro do mesmo script. Alm de ficar grande e feio, o nosso script ia comear a se tornar um programa dificil para futuras manutenes, no o caso desse pequeno exemplo. Ento, vamos entender o que uma funo, que apenas um pedao de cdigo com um objetivo especfico. Com uma estrutura unica que recebe um conjun de parmetros e retorna um dado, ou seja uma resposta. A vantagem, que uma funo declarada uma unica vez, mas pode ser utilizada inmeras vezes.

Criando uma funo

O primeiro passo declararmos o nome da funo, para isso vamos usar o operador function, assim: function minha_funcao (parmentros) {}. Lembrando que o nome da funo deve ser sempre iniciado por uma letra e nunca ter espaos em branco. Os parmetros que a funo ir receber devero ser separados por virgula. E dentro das chaves {} vem o cdigo da funo. Feito isso, vamos colocar um return, para retornar o resultado da funo. Exemplo de funo com passagem de 1 (um) parmetro.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

<?php //Funo de multiplicao de um nmero sem impresso na tela function multiplicar($numero){ $resultado = $numero * $numero ."<br>"; return $resultado; } //Vamos atribuir o valor 2 (dois) para a funo echo multiplicar(2); //Funo de multiplicao de um nmero com impresso na tela function multiplicar_echo($numero){ echo $resultado = $numero * $numero; return $resultado; } //Vamos atribuir o valor 4 (dois) para a funo multiplicar_echo(4) ?>

O que vai ser impresso na tela: 4 16 Agora, vamos ver uma funo com passagem de 2 (dois) parmetros:

1 2 3 4 5 6 7 8 9 10 11 12

<?php //Funo para medir a velocidade mdia function velocidade_media($espaco, $tempo){ echo $vm = $espaco/$tempo ." km/h"; return $vm; } #Vou usar o espao em km e o tempo em horas //Vamos fornecer os dados, na ordem que pedido na funo, espao e tempo velocidade_media(100, 10); ?>

O que vai ser impresso na tela: 10 km/h

Funes com Variveis Globais


Nas funes criadas nos exemplos acima, foram criadas com variveis locais, ou seja. Agora vamos ver como criar uma funo externa, ou global. Para acessar uma varivel externa ao contexto de uma funo sem passa-la como parmetro necessrio declarar ela como global.

1 2 3 4

<?php $contador = 1;

function multiplicar($numero){ global $contador;

5 6 7 8 9 10 11 12 13

$contador++; echo $resultado = $numero * $numero ."<br>"; return $resultado; } while ($contador <= 10){ multiplicar($contador); } ?>

O que vai ser impresso na tela: 1 4 9 16 25 36 49 64 81 100 No exemplo acima, eu declarei a varivel $contador como global e depois eu usei ele em uma estrutura de comando o WHILE, ento, enquanto o $contador for menor igual a 10 (dez) a funo multiplicar vai ser usada. Ento em resumo, funo com variveis locais e globais fcil. Funo com Varivel Esttica Com variveis estticas, podemos armazenar o valor que foi atribuido na ltima execuo, para isso, basta a gente declarar a varivel esttica com o operador static.

1 2 3 4 5 6 7 8 9 10 11 12 13

<?php function somar($numero){ static $soma; $soma += $numero; $resultado = $numero + $soma; echo "$numero + $soma = $resultado <br>"; } for ($i=0; $i <= 10; $i++){ somar($i); } ?>

O que vai ser impresso na tela: 0+0=0 1+1=2 2+3=5 3+6=9 4 + 10 = 14 5 + 15 = 20 6 + 21 = 27 7 + 28 = 35 8 + 36 = 44 9 + 45 = 54 10 + 55 = 65

No PHP tambm possivel definir uma funo com nmero de argumentos variveis, ou seja, a gente consegue receber as variveis de forma dinmica, mesmo sem saber quais so e quantos so. Para obter quais so, vamos utilizar a funo func_get_args() e para obter a quantidade de argumentos, usamos a funo func_num_args().

1 2 3 4 5 6 7 8 9 10 11 12

<?php function listar_nomes(){ $nomes = func_get_args(); $quantidade = func_num_args(); for ($i=0; $i<$quantidade; $i++){ echo "Eu me chamo " . $nomes[$i] ."<br>"; }

listar_nomes('Joo', 'Maria', 'Renan', 'Rafael'); ?>

O que vai ser impresso na tela: Eu me chamo Joo Eu me chamo Maria Eu me chamo Renan Eu me chamo Rafael

Recurso
E por ultimo e no menos importante, vamos falar de recurso, que nada mais , do que chamar a funo dentro da propria funo.

1 2 3 4 5 6 7 8 9 10 11 12 13

<?php function fatorial($numero){ if($numero == 1){ return $numero; }else{ return $numero * fatorial($numero - 1); } } for ($i=1; $i<=5; $i++){ echo "Fatorial de ".$i." ". fatorial($i) ."<br>"; } ?>

O que vai ser impresso na tela: Fatorial de 1 1 Fatorial de 2 2 Fatorial de 3 6 Fatorial de 4 24 Fatorial de 5 120

You might also like