Diferència entre revisions de la pàgina «Funcions»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Estructura de les Funcions PHP)
 
(Hi ha 12 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
Tornar: [[M9_-_Implantació_d’aplicacions_web | Tornar a l'inici]]
 +
 
=Funcions en PHP=
 
=Funcions en PHP=
  
  
== Estructura de les Funcions PHP ==
+
== Estructura de les funcions PHP ==
  
= Estructura de les funcions PHP =
 
 
: Una funció en PHP té la següent estructura:
 
: Una funció en PHP té la següent estructura:
  
Línia 12: Línia 13:
 
::: '''return''' valor; (opcional)
 
::: '''return''' valor; (opcional)
 
:: '''}'''
 
:: '''}'''
 +
 +
Utiltitzem  la paraula '''return''' en l'interior de la funció sempre que desitgem que la nostra funció retorne un valor.
  
 
== Àmbit de les variables ==
 
== Àmbit de les variables ==
 +
 +
 +
* '''Àmbit local''': Les variables de la funció no es poden utilitzar fora d'aquesta. Aquestes variables són inicialitzades cada vegada que es crida a la funció (excepte si utilitzem variables estàtiques)
 +
 +
* '''Àmbit global''': Encara que no és el més recomanable (per claredat del programa) es poden utilitzar variables globals. Es defineixen utilitzant la paraula "''global''". Per exemple,
 +
: $f1="Hola";
 +
: function func ()
 +
: {
 +
:: global $f1;
 +
:: echo $f1;
 +
: }
 +
 +
* '''Variables estàtiques:''' Recorden el valor de la variable en cada crida a la funció mentre estigui executant-se el script PHP. Es defineix una variable estàtica amb la paraula "''static''".
 +
 +
Proveu aquest script:
 +
 +
<?php
 +
: function comptadora ()
 +
: {
 +
:: $cont=0;
 +
:: return ++$cont;
 +
: }
 +
 +
: function comptadorb ()
 +
: {
 +
:: static $cont=0;
 +
:: return ++$cont;
 +
: }
 +
 +
: echo "Comptador A:".comptadora()."&lt;br/&gt;";
 +
: echo "Comptador A:".comptadora()."&lt;br/&gt;";
 +
: echo "Comptador A:".comptadora()."&lt;br/&gt;";
 +
: echo "Comptador A:".comptadorb()."&lt;br/&gt;";
 +
: echo "Comptador A:".comptadorb()."&lt;br/&gt;";
 +
: echo "Comptador A:".comptadorb()."&lt;br/&gt;";
 +
?>
 +
  
 
== Paràmetres per valor i referència ==
 
== Paràmetres per valor i referència ==
 +
 +
Per defecte les variables en PHP es passen per valor, es a dir, una còpia del valor original. Així, si volem que una funció modifique el valor d'una variable que s'ha passat com a paràmetre a una funció, aquesta variable s'ha de passar per '''referència'''.
 +
Al passar una variable per referència, el que fem és donar l'adreça d'aquesta variable per a que pugui ser modificada.
 +
Per a passar una variable per referència, ho fem utilitzant el caràcter "'''&'''", per exemple:
 +
: function logarisme('''&$valor''')
 +
: {
 +
: }
 +
 +
Per tal d'entendre el funcionament dels paràmetres per referència, proveu el següent exemple i posteriorment intenteu arreglar-ho:
 +
 +
<?php
 +
: function reset_comptador ($c)
 +
: {
 +
:: $c=0;
 +
: }
 +
: $count=0;
 +
: $count++;
 +
: $count++;
 +
: $count++;
 +
: echo "Comptador=$count&lt;br/&gt;";
 +
: reset_comptador($count);
 +
: echo "Comptador=$count&lt;br/&gt;";
 +
?>
 +
 +
== Funcions recursives ==
 +
Les funcions recursives són aquelles que fan una crida a elles mateix però reduint la complexitat del problema en cada crida fins que s'arriba a una solució trivial.
 +
Un cas típic de funció recursiva és el càlcul del factorial d'un número. Segons la definició, '''factorial (n)= n*factorial(n-1)'''.
 +
 +
    <php
 +
        function factorial($n)
 +
        {
 +
            if ($n==1)  // aquesta seria la solució trivial
 +
                return 1;
 +
            else
 +
                return n*factorial(n-1);  // crida recursiva reduint la complexitat en -1
 +
        }
 +
        $a=5;
 +
        echo factorial($a);
 +
    ?>
 +
 +
 +
Aquest script retornaria el factorial de 5, és a dir factorial(5)=5*4*3*2*1=120.
 +
 +
 +
Tornar: [[M9_-_Implantació_d’aplicacions_web | Tornar a l'inici]]

Revisió de 03:23, 21 gen 2012

Tornar: Tornar a l'inici

Funcions en PHP

Estructura de les funcions PHP

Una funció en PHP té la següent estructura:
function nom_funció (Declaració de paràmetres)
{
accions que es realitzen en la funció
return valor; (opcional)
}

Utiltitzem la paraula return en l'interior de la funció sempre que desitgem que la nostra funció retorne un valor.

Àmbit de les variables

  • Àmbit local: Les variables de la funció no es poden utilitzar fora d'aquesta. Aquestes variables són inicialitzades cada vegada que es crida a la funció (excepte si utilitzem variables estàtiques)
  • Àmbit global: Encara que no és el més recomanable (per claredat del programa) es poden utilitzar variables globals. Es defineixen utilitzant la paraula "global". Per exemple,
$f1="Hola";
function func ()
{
global $f1;
echo $f1;
}
  • Variables estàtiques: Recorden el valor de la variable en cada crida a la funció mentre estigui executant-se el script PHP. Es defineix una variable estàtica amb la paraula "static".

Proveu aquest script:

<?php

function comptadora ()
{
$cont=0;
return ++$cont;
}
function comptadorb ()
{
static $cont=0;
return ++$cont;
}
echo "Comptador A:".comptadora()."<br/>";
echo "Comptador A:".comptadora()."<br/>";
echo "Comptador A:".comptadora()."<br/>";
echo "Comptador A:".comptadorb()."<br/>";
echo "Comptador A:".comptadorb()."<br/>";
echo "Comptador A:".comptadorb()."<br/>";

?>


Paràmetres per valor i referència

Per defecte les variables en PHP es passen per valor, es a dir, una còpia del valor original. Així, si volem que una funció modifique el valor d'una variable que s'ha passat com a paràmetre a una funció, aquesta variable s'ha de passar per referència. Al passar una variable per referència, el que fem és donar l'adreça d'aquesta variable per a que pugui ser modificada. Per a passar una variable per referència, ho fem utilitzant el caràcter "&", per exemple:

function logarisme(&$valor)
{
}

Per tal d'entendre el funcionament dels paràmetres per referència, proveu el següent exemple i posteriorment intenteu arreglar-ho:

<?php

function reset_comptador ($c)
{
$c=0;
}
$count=0;
$count++;
$count++;
$count++;
echo "Comptador=$count<br/>";
reset_comptador($count);
echo "Comptador=$count<br/>";

?>

Funcions recursives

Les funcions recursives són aquelles que fan una crida a elles mateix però reduint la complexitat del problema en cada crida fins que s'arriba a una solució trivial. Un cas típic de funció recursiva és el càlcul del factorial d'un número. Segons la definició, factorial (n)= n*factorial(n-1).

   <php
       function factorial($n)
       {
           if ($n==1)  // aquesta seria la solució trivial
               return 1;
           else
               return n*factorial(n-1);  // crida recursiva reduint la complexitat en -1
       }
       $a=5;
       echo factorial($a);
   ?>


Aquest script retornaria el factorial de 5, és a dir factorial(5)=5*4*3*2*1=120.


Tornar: Tornar a l'inici