Desenvolupament web dinàmic backend amb PHP
Conceptes¶
Sessió 4: Funcions / includes¶
Objectiu Sessió 4
Aprendre a generar i utilitzar funcions per a reutilitzar codi les vegades que faci falta per assolir l'objectiu, així com aprendre a desenvolupar aplicacions escalables.
Funcions¶
Una funció s'usa per estructurar el codi de manera descendent i poder usar i repetir la seva lògica tantes vegades com sigui necessari.
Una funció no s'executa quan s'interpreta l'script php, cal fer una crida a la mateixa.
Info
Una funció pot retornar o no un valor
Simplement caldrà posar return expresió;
En aquest cas, el valor de retorn serà null
El nom de la funció ha de començar amb una lletra o bé _.
Els noms de les funcions, respecte a case-sensitive:
- Al declarar-les.
- Són **no case-sensitive**.
- Donarà errada per duplicitat sense diferenciar majúscules de minúscules.
- No diferencia entre majúscules i minúscules i les enten com al mateix identificador.
- Al cridar-les.
- Són també **no case-sensitive**.
- No donarà errada al diferenciar majúscules de minúscules al cridar-les.
- Podem usar-les indistintament, però és recomanable fer-ho igual que com s'han declarat.
Cal tenir-ho present per que els identificadors de les variables en php
siq eue són sensibles a les majúscules i ho diferencia en els dos casos.
Warning
donaria errada de declaració per duplicitat de l'identificador!
Warning
Faria la crida a la funció Exemple()
dues vegades correctament !
Un petit exemple, de com definir i cridar a una funció sense paràmetres ni que retorni res.
Paràmetres¶
Els paràmetres o arguments ens permeten passar valor a dins de la funció i tindran un àmbit local de la mateixa.
Exemple 1 simple
Versió 7
A partir de la versió 7 del php, podem tipar els paràmetres i els valors de retorn
Conjuntament amb strict a la declaració, generarà una "Errada fatal!", si el tipus de dades no coincideix.
El valor de retorn també serà de tipus int
En aquest exemple, ho forcem explícitament: (int)
Podem passar arguments per:
- valor. Permet passar valors o agafar els valors dels arguments passats.
- referència: usem & al davant de l'argument i farà referència a la posició de memòria
Exemple 2 arguments
Exemple d'acumular un valor a una variable.
Noteu que no tenim cap return a la funció.
El segon valor s'acumula a la variable passada en primer argument.
Ho podem observar amb el var_dump($a);
Valors per defecte¶
Podem indicar un valor per defecte si no passem aquest argument. Ha d'estar a la dreta dels argument, com a últim passat.
Això permet cridar a la funció passant un diferent número d'arguments a la mateixa.
Per exemple podriem fer:
Exemple 3 paràmetres per defecte
Exemple d'acumular un valor a una variable. Si no passem el valor que volem acumular, que sigui 1.
Noteu que no tenim cap return a la funció.
El segon valor s'acumula a la variable passada en primer argument.
Versió 8
A partir de la versió 8 de php podem usar els paràmetres anomenats (named arguments)
Avantatges:
- No cal respectar l'ordre dels arguments.
- Es poden ometre arguments opcionals sense deixar valors buits.
- Millora la llegibilitat del codi.
paràmetres anomenats | |
---|---|
POO Mètodes
Més endavant veurem com la lògica de les funcions serà usada en la implementació dels mètodes d'una classe.
Això permetrà encarar el tema de desenvolupament d'arquitectura MVC.
Recursivitat
PHP permet recursivitat en la crida de funcions i es pot cridar a si mateixa.
Funcions PHP¶
Funcions
El llenguatge PHP incorpora una multitud de funcions que podem usar per a qualsevol proposit i les podem incloure directament al nostre codi, per exemple, la de comptar els caracters d'un string:
En cas contrari hauriem de fer un codi similar a:
Includes¶
Els arxius include ens donen la oportunitat d'escriure funcions generals de la nostra aplicació i poder-la incloure en les diferents pàgines .php que desenvolupem.
Ens ajudarà a desenvolupar codi més estructurat.
Tenim diverses opcions:
- include: inclou l'arxiu. Si no el troba, no l'inclou i continua.
- require: inclou l'arxiu. Si no el troba, ara s'atura i dona errada.
- include_once: inclou l'arxiu, només la 1a vegada. Si no el troba, no l'inclou i continua
- require_once: inclou l'arxiu, només la 1a vegada. Si no el troba, ara s'atura i dona errada.
Tip
És important entendre que el contingut php
s'inclou abans de que el servidor php l'executi, per tant, a efectes pràctics és com si fos el mateix fitxer. Però dividit en dues parts.
Warning
Si una variable o funció ja està definida en la part del fitxer que inclou, donarà una errada de identificador ja declarat!
Info
Podem veure com ho fem.