Diferència entre revisions de la pàgina «Funcions»
| (Hi ha 9 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 == | ||
| − | |||
: Una funció en PHP té la següent estructura: | : Una funció en PHP té la següent estructura: | ||
| Línia 30: | Línia 32: | ||
Proveu aquest script: | Proveu aquest script: | ||
| + | |||
<?php | <?php | ||
: function comptadora () | : function comptadora () | ||
| Línia 46: | Línia 49: | ||
: echo "Comptador A:".comptadora()."<br/>"; | : echo "Comptador A:".comptadora()."<br/>"; | ||
: echo "Comptador A:".comptadora()."<br/>"; | : echo "Comptador A:".comptadora()."<br/>"; | ||
| − | : echo "Comptador A:". | + | : echo "Comptador A:".comptadorb()."<br/>"; |
| − | : echo "Comptador A:". | + | : echo "Comptador A:".comptadorb()."<br/>"; |
| − | : echo "Comptador A:". | + | : echo "Comptador A:".comptadorb()."<br/>"; |
?> | ?> | ||
== 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<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: [[M9_-_Implantació_d’aplicacions_web | Tornar a l'inici]] | ||
Revisió de 02:23, 21 gen 2012
Tornar: Tornar a l'inici
Contingut
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