SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
PHP: Funções
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 13, 09-04-2013
Funções




                            Nome da função
    parâmetros de entrada                         valores de saída
                               código da função
Funções: características

Permitem a modularidade e reutilização do código

Permitem uma gestão centralizada do código

São invocadas/chamadas quando são necessárias
  • Podem possuir parâmetros de entrada
  • Podem retornar valores de saída

Funções pré-definidas (built-in)
  • Mais de 1000 numa instalação standard do PHP
  • Funções adicionais disponíveis através da instalação de pacotes/
    bibliotecas

Funções definidas pelo utilizador
Declaração e invocação de uma função

Declarar uma função

  • function nomefuncao(parâmetros/args) {
        codigodafuncao
    }

  • function escreve_ola() {
         echo “Olá. Esta é a minha primeira função!";
    }



Invocar/chamar uma função
  • escreve_ola();
Passagem de parâmetros

Valores passados para dentro da função aquando da sua chamada

  • <?php
       function calctaxa($preco, $taxa) {
          $total = $preco + ($preco * $taxa);
          echo “custo total: $total" . "<br />";
       }

         $a = 2;
         $b = 3;

         calctaxa($a, $b);
    ?>



    > “custo total: 8”
Passagem de parâmetros por valor

As alterações efetuadas dentro da função aos valores armazenados nos
parâmetros passados por valor são ignoradas fora da função
  • <?php
       function calctaxa($preco, $taxa) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />";
          echo $taxa . "<br />";
          echo “custo total: $total" . "<br />";
       }
       $preco = 2;
       $taxa = 2;
       calctaxa($preco, $taxa);
       echo $preco . "<br />";
       echo $taxa;
    ?>
Passagem de parâmetros por valor

As alterações efetuadas dentro da função aos valores armazenados nos
parâmetros passados por valor são ignoradas fora da função
  • <?php
       function calctaxa($preco, $taxa) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />"; // 3
          echo $taxa . "<br />"; // 3
          echo “custo total: $total" . "<br />"; // ...6
       }
       $preco = 2;
       $taxa = 2;
       calctaxa($preco, $taxa);
       echo $preco . "<br />"; // 2
       echo $taxa;              // 2
    ?>
Passagem de parâmetros por referência

As alterações efetuadas dentro da função aos valores armazenados nos
parâmetros passados por valor são visíveis fora da função
  • <?php
       function calctaxa($preco, &$t) {
          $total = $preco + ($preco * $t);
          $preco++;
          $t++;
          echo $preco . "<br />";
          echo $t . "<br />";
          echo “custo total: $total" . "<br />";
       }
       $preco = 2;
       $taxa = 2;
       calctaxa($preco, $taxa);
       echo $preco . "<br />";
       echo $taxa;
    ?>
Passagem de parâmetros por referência

As alterações efetuadas dentro da função aos valores armazenados nos
parâmetros passados por valor são visíveis fora da função
  • <?php
       function calctaxa($preco, &$t) {
          $total = $preco + ($preco * $t);
          $preco++;
          $t++;
          echo $preco . "<br />"; // 3
          echo $t . "<br />";      // 3
          echo “custo total: $total" . "<br />"; // ...6
       }
       $preco = 2;
       $taxa = 2;
       calctaxa($preco, $taxa);
       echo $preco . "<br />"; // 2
       echo $taxa;              // 3
    ?>
Passagem de parâmetros com valores por defeito

Valor atribuído por defeito ao parâmetro, caso a invocação da função não
seja feita com esse parâmetro
  • <?php
       function calctaxa($preco, $taxa=3) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />";
          echo $taxa . "<br />";
          echo “custo total: $total" . "<br />";
       }
       $pr = 2;
       $ta = 2;
       calctaxa($pr);
    ?>
Passagem de parâmetros com valores por defeito

Valor atribuído por defeito ao parâmetro, caso a invocação da função não
seja feita com esse parâmetro
  • <?php
       function calctaxa($preco, $taxa=3) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />"; // 3
          echo $taxa . "<br />";     // 4
          echo “custo total: $total" . "<br />"; // ...8
       }
       $pr = 2;
       $ta = 2;
       calctaxa($pr);
    ?>
Passagem de parâmetros com parâmetros
opcionais

Caso um dado parâmetro seja opcional, na invocação da função sem esse
parâmetro ser-lhe-á atribuído um valor vazio/nulo
  • <?php
       function calctaxa($preco, $taxa=””) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />";
          echo $taxa . "<br />";
          echo “custo total: $total" . "<br />";
       }
       $pr = 2;
       $ta = 2;
       calctaxa($pr);
    ?>
Passagem de parâmetros com parâmetros
opcionais

Caso um dado parâmetro seja opcional, na invocação da função sem esse
parâmetro ser-lhe-á atribuído um valor vazio/nulo
  • <?php
       function calctaxa($preco, $taxa=””) {
          $total = $preco + ($preco * $taxa);
          $preco++;
          $taxa++;
          echo $preco . "<br />"; // 3
          echo $taxa . "<br />"; // 1
          echo “custo total: $total" . "<br />"; //... 2
       }
       $pr = 2;
       $ta = 2;
       calctaxa($pr);
    ?>
Passagem de parâmetros com parâmetros
opcionais

Caso um dado parâmetro seja opcional, na invocação da função sem esse
parâmetro ser-lhe-á atribuído um valor vazio/nulo
  • <?php
    function somanumeros($num1=“”, $num2="", $num3="") {
       $total = $num1 + $num2 + $num3;
       echo "soma: $total" . "<br />";
    }!

    somanumeros(1,2,3);
    somanumeros(1,2);
    somanumeros(1,"",3);
    somanumeros(1);
    somanumeros();
    ?>
Passagem de parâmetros com parâmetros
opcionais

Caso um dado parâmetro seja opcional, na invocação da função sem esse
parâmetro ser-lhe-á atribuído um valor vazio/nulo
  • <?php
    function somanumeros($num1=“”, $num2="", $num3="") {
       $total = $num1 + $num2 + $num3;
       echo "soma: $total" . "<br />";
    }!

    somanumeros(1,2,3);      //   “soma:   6”
    somanumeros(1,2);        //   “soma:   3”
    somanumeros(1,"",3);     //   “soma:   4”
    somanumeros(1);          //   “soma:   1”
    somanumeros();           //   “soma:   0”
    ?>
Retorno de valores de saída

A função devolve um ou mais valores que poderão ser atribuídos a
variáveis aquando da sua invocação/chamada
  • <?php
    function somanumeros($num1=“”, $num2="", $num3="") {
       $total = $num1 + $num2 + $num3;
       return $total;
    }!

    $resultado = somanumeros(1,2,3);
    echo “<br />” . somanumeros(1,2,3);
    ?>
Retorno de valores de saída

A função devolve um ou mais valores que poderão ser atribuídos a
variáveis aquando da sua invocação/chamada
  • <?php
    function somanumeros($num1=“”, $num2="", $num3="") {
       $total = $num1 + $num2 + $num3;
       return $total;
    }!

    $resultado = somanumeros(1,2,3);
    echo “<br />” . somanumeros(1,2,3); // 6
    ?>




É possível retornar múltiplos valores através de arrays, ou seja, o valor de
retorno pode ser um array com múltiplos elementos!
Recursividade

Funções recursivas são funções que se invocam a si próprias.

Exemplo: Cálculo da soma dos n números naturais, menores ou iguais a n

  • <?php
       function soman($n) {
          if ($n <=0) { // impede recursividade infinita
             return "cálculo não efetuado";
          } elseif ($n==1) { // fim de recursividade
             return 1;
          } else {
             return $n + soman($n-1);
          }
       }!
    ?>
Recursividade

 • <?php
      function soman($n) {
         if ($n <=0) { // impede recursividade infinita
            return "cálculo não efetuado";
         } elseif ($n==1) { // fim de recursividade
            return 1;
         } else {
            return $n + soman($n-1);
         }
      }!
      echo "<br />" . soman(-1);
      echo "<br />" . soman(0);
      echo "<br />" . soman(1);
      echo "<br />" . soman(3);
      echo "<br />" . soman(4);
   ?>
Recursividade

 • <?php
      function soman($n) {
         if ($n <=0) { // impede recursividade infinita
            return "cálculo não efetuado";
         } elseif ($n==1) { // fim de recursividade
            return 1;
         } else {
            return $n + soman($n-1);
         }
      }!
      echo "<br />" . soman(-1); // “Cálculo não efetuado”
      echo "<br />" . soman(0); // “Cálculo não efetuado”
      echo "<br />" . soman(1); // 1
      echo "<br />" . soman(3); // 6
      echo "<br />" . soman(4); // 10
   ?>
Exemplo

Qual o resultado?
  • <?php
    function soma($a, $b) {
      $a++;
      $b++;
      $c = $a + $b;
      echo "Dentro da função: ". $a . " | ". $b . " | ". $c . "<br />";
      return $c;
    }

    $a = 2;
    $b = 3;
    $c = 0;
    echo "Antes da função: ". $a . " | ". $b . " | ". $c . "<br />";
    $resultado = soma($a, $b);
    echo "Depois da função: ". $a . " | ". $b . " | ". $c . "<br />";
    echo "Resultado: ". $resultado;
    ?>

Mais conteúdo relacionado

Mais procurados

Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2garux
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
Javascript Avançado
Javascript AvançadoJavascript Avançado
Javascript AvançadoBruno Tavares
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisCarlos Santos
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesDevCamp Campinas
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Frederico Maia Arantes
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Israel Messias
 

Mais procurados (20)

Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2
 
PHP ao Extremo
PHP ao ExtremoPHP ao Extremo
PHP ao Extremo
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Javascript Avançado
Javascript AvançadoJavascript Avançado
Javascript Avançado
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
Slides
SlidesSlides
Slides
 
2ª aula php
2ª aula php2ª aula php
2ª aula php
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
Leonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional InterfacesLeonardo Zamariola - High Order Functions e Functional Interfaces
Leonardo Zamariola - High Order Functions e Functional Interfaces
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Funcao PHP
Funcao PHPFuncao PHP
Funcao PHP
 
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
Java 8 - Afinal onde usamos no dia a dia? GOJava 15 anos!
 
Aula 4 php
Aula 4 phpAula 4 php
Aula 4 php
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
Variáveis
VariáveisVariáveis
Variáveis
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
 

Destaque

SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
Guia de Análisis jurisprudencial
Guia de Análisis jurisprudencialGuia de Análisis jurisprudencial
Guia de Análisis jurisprudencialKevin Andres
 

Destaque (8)

SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
Guia de Análisis jurisprudencial
Guia de Análisis jurisprudencialGuia de Análisis jurisprudencial
Guia de Análisis jurisprudencial
 

Semelhante a Funções PHP

LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09Carlos Santos
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07Yuri Bispo
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que pareceImpacta Eventos
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIinfo_cimol
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdadeLuis Vendrame
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraFlávio Lisboa
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Jstdc-globalcode
 

Semelhante a Funções PHP (20)

LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdade
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Js
 

Mais de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)Carlos Santos
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)Carlos Santos
 
T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)Carlos Santos
 
T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)Carlos Santos
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)Carlos Santos
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)Carlos Santos
 

Mais de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)
 
T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)T13_LM3: Arrays (2013-2014)
T13_LM3: Arrays (2013-2014)
 
T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)T12_LM3: Arrays (2013-2014)
T12_LM3: Arrays (2013-2014)
 
Web APIs
Web APIsWeb APIs
Web APIs
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
 

Último

Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 

Funções PHP

  • 1. PHP: Funções Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 13, 09-04-2013
  • 2. Funções Nome da função parâmetros de entrada valores de saída código da função
  • 3. Funções: características Permitem a modularidade e reutilização do código Permitem uma gestão centralizada do código São invocadas/chamadas quando são necessárias • Podem possuir parâmetros de entrada • Podem retornar valores de saída Funções pré-definidas (built-in) • Mais de 1000 numa instalação standard do PHP • Funções adicionais disponíveis através da instalação de pacotes/ bibliotecas Funções definidas pelo utilizador
  • 4. Declaração e invocação de uma função Declarar uma função • function nomefuncao(parâmetros/args) { codigodafuncao } • function escreve_ola() { echo “Olá. Esta é a minha primeira função!"; } Invocar/chamar uma função • escreve_ola();
  • 5. Passagem de parâmetros Valores passados para dentro da função aquando da sua chamada • <?php function calctaxa($preco, $taxa) { $total = $preco + ($preco * $taxa); echo “custo total: $total" . "<br />"; } $a = 2; $b = 3; calctaxa($a, $b); ?> > “custo total: 8”
  • 6. Passagem de parâmetros por valor As alterações efetuadas dentro da função aos valores armazenados nos parâmetros passados por valor são ignoradas fora da função • <?php function calctaxa($preco, $taxa) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; echo $taxa . "<br />"; echo “custo total: $total" . "<br />"; } $preco = 2; $taxa = 2; calctaxa($preco, $taxa); echo $preco . "<br />"; echo $taxa; ?>
  • 7. Passagem de parâmetros por valor As alterações efetuadas dentro da função aos valores armazenados nos parâmetros passados por valor são ignoradas fora da função • <?php function calctaxa($preco, $taxa) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; // 3 echo $taxa . "<br />"; // 3 echo “custo total: $total" . "<br />"; // ...6 } $preco = 2; $taxa = 2; calctaxa($preco, $taxa); echo $preco . "<br />"; // 2 echo $taxa; // 2 ?>
  • 8. Passagem de parâmetros por referência As alterações efetuadas dentro da função aos valores armazenados nos parâmetros passados por valor são visíveis fora da função • <?php function calctaxa($preco, &$t) { $total = $preco + ($preco * $t); $preco++; $t++; echo $preco . "<br />"; echo $t . "<br />"; echo “custo total: $total" . "<br />"; } $preco = 2; $taxa = 2; calctaxa($preco, $taxa); echo $preco . "<br />"; echo $taxa; ?>
  • 9. Passagem de parâmetros por referência As alterações efetuadas dentro da função aos valores armazenados nos parâmetros passados por valor são visíveis fora da função • <?php function calctaxa($preco, &$t) { $total = $preco + ($preco * $t); $preco++; $t++; echo $preco . "<br />"; // 3 echo $t . "<br />"; // 3 echo “custo total: $total" . "<br />"; // ...6 } $preco = 2; $taxa = 2; calctaxa($preco, $taxa); echo $preco . "<br />"; // 2 echo $taxa; // 3 ?>
  • 10. Passagem de parâmetros com valores por defeito Valor atribuído por defeito ao parâmetro, caso a invocação da função não seja feita com esse parâmetro • <?php function calctaxa($preco, $taxa=3) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; echo $taxa . "<br />"; echo “custo total: $total" . "<br />"; } $pr = 2; $ta = 2; calctaxa($pr); ?>
  • 11. Passagem de parâmetros com valores por defeito Valor atribuído por defeito ao parâmetro, caso a invocação da função não seja feita com esse parâmetro • <?php function calctaxa($preco, $taxa=3) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; // 3 echo $taxa . "<br />"; // 4 echo “custo total: $total" . "<br />"; // ...8 } $pr = 2; $ta = 2; calctaxa($pr); ?>
  • 12. Passagem de parâmetros com parâmetros opcionais Caso um dado parâmetro seja opcional, na invocação da função sem esse parâmetro ser-lhe-á atribuído um valor vazio/nulo • <?php function calctaxa($preco, $taxa=””) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; echo $taxa . "<br />"; echo “custo total: $total" . "<br />"; } $pr = 2; $ta = 2; calctaxa($pr); ?>
  • 13. Passagem de parâmetros com parâmetros opcionais Caso um dado parâmetro seja opcional, na invocação da função sem esse parâmetro ser-lhe-á atribuído um valor vazio/nulo • <?php function calctaxa($preco, $taxa=””) { $total = $preco + ($preco * $taxa); $preco++; $taxa++; echo $preco . "<br />"; // 3 echo $taxa . "<br />"; // 1 echo “custo total: $total" . "<br />"; //... 2 } $pr = 2; $ta = 2; calctaxa($pr); ?>
  • 14. Passagem de parâmetros com parâmetros opcionais Caso um dado parâmetro seja opcional, na invocação da função sem esse parâmetro ser-lhe-á atribuído um valor vazio/nulo • <?php function somanumeros($num1=“”, $num2="", $num3="") { $total = $num1 + $num2 + $num3; echo "soma: $total" . "<br />"; }! somanumeros(1,2,3); somanumeros(1,2); somanumeros(1,"",3); somanumeros(1); somanumeros(); ?>
  • 15. Passagem de parâmetros com parâmetros opcionais Caso um dado parâmetro seja opcional, na invocação da função sem esse parâmetro ser-lhe-á atribuído um valor vazio/nulo • <?php function somanumeros($num1=“”, $num2="", $num3="") { $total = $num1 + $num2 + $num3; echo "soma: $total" . "<br />"; }! somanumeros(1,2,3); // “soma: 6” somanumeros(1,2); // “soma: 3” somanumeros(1,"",3); // “soma: 4” somanumeros(1); // “soma: 1” somanumeros(); // “soma: 0” ?>
  • 16. Retorno de valores de saída A função devolve um ou mais valores que poderão ser atribuídos a variáveis aquando da sua invocação/chamada • <?php function somanumeros($num1=“”, $num2="", $num3="") { $total = $num1 + $num2 + $num3; return $total; }! $resultado = somanumeros(1,2,3); echo “<br />” . somanumeros(1,2,3); ?>
  • 17. Retorno de valores de saída A função devolve um ou mais valores que poderão ser atribuídos a variáveis aquando da sua invocação/chamada • <?php function somanumeros($num1=“”, $num2="", $num3="") { $total = $num1 + $num2 + $num3; return $total; }! $resultado = somanumeros(1,2,3); echo “<br />” . somanumeros(1,2,3); // 6 ?> É possível retornar múltiplos valores através de arrays, ou seja, o valor de retorno pode ser um array com múltiplos elementos!
  • 18. Recursividade Funções recursivas são funções que se invocam a si próprias. Exemplo: Cálculo da soma dos n números naturais, menores ou iguais a n • <?php function soman($n) { if ($n <=0) { // impede recursividade infinita return "cálculo não efetuado"; } elseif ($n==1) { // fim de recursividade return 1; } else { return $n + soman($n-1); } }! ?>
  • 19. Recursividade • <?php function soman($n) { if ($n <=0) { // impede recursividade infinita return "cálculo não efetuado"; } elseif ($n==1) { // fim de recursividade return 1; } else { return $n + soman($n-1); } }! echo "<br />" . soman(-1); echo "<br />" . soman(0); echo "<br />" . soman(1); echo "<br />" . soman(3); echo "<br />" . soman(4); ?>
  • 20. Recursividade • <?php function soman($n) { if ($n <=0) { // impede recursividade infinita return "cálculo não efetuado"; } elseif ($n==1) { // fim de recursividade return 1; } else { return $n + soman($n-1); } }! echo "<br />" . soman(-1); // “Cálculo não efetuado” echo "<br />" . soman(0); // “Cálculo não efetuado” echo "<br />" . soman(1); // 1 echo "<br />" . soman(3); // 6 echo "<br />" . soman(4); // 10 ?>
  • 21. Exemplo Qual o resultado? • <?php function soma($a, $b) { $a++; $b++; $c = $a + $b; echo "Dentro da função: ". $a . " | ". $b . " | ". $c . "<br />"; return $c; } $a = 2; $b = 3; $c = 0; echo "Antes da função: ". $a . " | ". $b . " | ". $c . "<br />"; $resultado = soma($a, $b); echo "Depois da função: ". $a . " | ". $b . " | ". $c . "<br />"; echo "Resultado: ". $resultado; ?>