Enrera
Mòdul 2
Creació i gestió d'entorns web dinàmics (PHP)
  Pràctica
2
3
4
5
   
Exercicis
Exercicis
 
 
 
 
  Inclusió de fitxers. Variables i arrays
   
 

L'objectiu d'aquesta pràctica és fer una introducció a les possibilitats del PHP pel que fa a la inserció de fitxers i treballar noves característiques de la seva sintaxi. Així, veurem:

  • Inclusió de fitxers externs i biblioteques
  • Variables
  • Arrays
   
  Inclusió de fitxers externs i biblioteques
   
Pràctica

Veurem ara com incloure un fitxer que ens farà d'encapçalament de la pàgina:

   
  Copieu el codi següent en el vostre editor i deseu-lo amb el nom de m2p21.php
   
Veure codi

Executar codi

<?php
/*-----------------------------------------------------------------
* Mòdul: 2 Pràctica: 2 Fitxer: m2p21.php
* Autor: D116 Data:
* Descripció: Definició de constants i inclusió de fitxers
* Pre condi.: Cal tenir definit i localitzable el fitxer "cap.php"
* Post cond.:
-----------------------------------------------------------------*/
?>
<html>

<?php
// Definició de constants
// Normalment es defineixen en majúscules
// definim la constant del títol del curs
define("TITOL","D116-Creació i gestió d'entorns web dinàmics (PHP)
");
// definim constant per fer un 'break' o salt de línia HTML
define("B","<br>");

// inclusió d'un fitxer extern
include( "cap.php" );

echo B;
echo B;
echo B;
echo "PHP<br> \n";
echo "------------------<br> \n";
echo "Hola a <b>tothom</b> \n";
echo "<br> \n";

echo "<i>Benvinguts</i> al món del \"PHP\" <br> \n";
echo "<br><br><br> \n";
?>
</html>

 
Llistat 2.2.1. Codi del fitxer principal
   
  Copieu també el codi que hi ha a continuació i deseu-lo amb el nom de cap.php
   
Veure codi
<table width="100%" border="0" cellpadding="6" cellspacing="0" bgcolor="#003366">
<tr>
<td bgcolor="#CCCCFF"><font color="#333366" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>
<?php echo TITOL; ?><br>
<?php echo "Avui és: ".date("d/m/Y"); ?> </b> </font></td>
</tr>
</table>
 
Llistat 2.2.2. Codi del fitxer inclòs: 'cap.php'
   
 

En el codi de m2p21.php hem fet dues coses diferents:

Per un cantó, hem definit unes constats mitjançant la funció define().

define("TITOL","D116-Creació i gestió d'entorns web dinàmics (PHP)");

Només cal assignar-li un nom (normalment es posen en majúscula) i, després d'una coma, el valor que tindrà aquella constant. En el nostre cas, hem definit "TITOL" (cadena) que, a partir d'aquí, podrem utilitzar on vulguem. Cada vegada que posem TITOL en qualsevol lloc del codi, serà substituït pel valor que li hem assignat.

define("B","<br>");

També hem definit la constant B, que contindrà predefinida l'etiqueta <br> del codi HTML.

Per un altre cantó, hem inclòs mitjançant la sentència include() un fitxer extern.

include( "cap.php" );

Això vol dir que s'inclourà el codi del fitxer cap.php en el lloc en què situem l'include i, funcionalment serà com si fos un sol fitxer.

Hi ha també la funció include_once() que només inclourà el fitxer una vegada com a màxim en un script. Igualment, també disposem de require() i require_once().

En el fitxer cap.php utilitzem, també, una altra funció del PHP: date(). Segons els diferents paràmetres que li passem i que podeu veure a la pàgina de referència, ens torna la data del sitema en el moment de l'execució del codi en diferents formats.

   
Atenció !
Cal anar amb compte amb la ubicació del fitxer que s'ha d'incloure. En l'exemple es pressuposa que el fitxer cap.php es troba al mateix directori que el principal. En cas contrari, caldria entrar el camí on es troba aquest fitxer.
   
Atenció !
Quan incloem un fitxer, si conté codi php, cal tornar a indicar l'obertura i el tancament d'aquest codi amb <?php i ?>
 
 
  Variables
   
Pràctica

No cal que recordem que les variables són una mena de contenidors, el valor dels quals pot anar canviant al llarg del programa.

En PHP trobem cinc tipus de variables: Integer, Double, String, Array i Object.

El PHP gestiona de manera automàtica els tipus de variables i fa les conversions convenients.

   
Veure codi

Executar codi

<?php
/*-----------------------------------------------------------------
* Mòdul: 2 Pràctica: 2 Fitxer: exem2p23.php
* Autor: D116 Data:
* Descripció: Tipus de variables del PHP
* Pre condi.:
* Post cond.:
-----------------------------------------------------------------*/

// definició de variables
$nom = "Marta"; // variables de text o cadena (String)
$cognom1 = "Salelles";
$cognom2 = "Ballarà";
$edat = 37; // variable numèrica (Integer)
$poblacio = "Sabadell";

// Inserció de les variables dins la cadena
echo "El teu nom és: $nom <br> \n";
echo "Els teus cognoms són: $cognom1 i $cognom2 <br> \n";
echo "Tens $edat anys <br> \n";
echo "Vius a $poblacio <br> \n";
?>

 
Llistat 2.2.3. Definició i presentació de variables
   
 

Comentem algunes idees bàsiques:

  • Els noms de les variables han de començar amb el signe dòlar ($).
  • No cal declarar el tipus de variable: el PHP reconeix automàticament de quin tipus es tracta.
  • Podem triar el nom que vulguem per a la variable. És recomanable, però, que el nom sigui mínimament descriptiu.
  • No podem utilitzar com a nom de variable cap dels mots reservats per al llenguatge PHP.
  • No és recomanable posar accents o caràcters especials en els noms de variable (ç,ñ...), tot i que podria funcionar igualment.
  • Podem utilitzar, si volem, el guió llarg (_) per substituir espais en blanc.

Si executeu l'script del llistat 2.2.3, veureu que definim variables de cadena, els valors entre cometes ($nom, $cognom1, $cognom2 i $poblacio) i numèric ($edat), amb el valor sense cometes.

Després de la definició, mostrem els valors mitjançant la sentència echo. Fixeu-vos que si utilitzem les cometes dobles (") per al contingut de echo, podem inserir directament les variables dins la cadena, independentment del tipus de variable de què es tracti:

echo "Tens $edat anys <br> \n"; $edat inserida en la cadena
echo "Vius a $poblacio <br> \n";
$poblacio inserida en la cadena

De vegades, aquest sistema pot comportar algun problema d'intepretació. Per això veurem a l'apartat següent com podem concatenar variables i cadenes.

   
Atenció !
La inserció directa de variables en la cadena no funciona si aquesta va entre cometes simples ('): echo 'Vius a $poblacio <br> \n'; no funcionarà.
   
Atenció !
El PHP aporta algunes funcions molt interessants a l'hora de treballar amb variables, entre les quals podem destacar:
funció resultat
gettype(variable) Torna el tipus de dada passada com a variable: integer, float, string, array, class, object o unknown type
settype(variable, tipus) Estableix el tipus de dada a desar dins una variable
isset(variable) Indica si la variable s'ha inicialitzat amb un valor (llavors retorna true) o no (false)
   
Atenció !
Els noms de les variables distingeixen entre minúscules i majúscules ("case sensitive", en anglès). És a dir que $nomvariable i $NomVariable serien dues variables diferents.
   
  Concatenació de cadenes i variables
  A diferència d'altres llenguatges, el signe de concatenació en PHP és el punt (.). Si reprenem el codi anterior i l'escrivim de manera concatenada resulta:
   
Veure codi

Executar codi

<?php
/*-----------------------------------------------------------------
* Mòdul: 2 Pràctica: 2 Fitxer: exem2p24.php
* Autor: D116 Data:
* Descripció: Concatenació de variables i text
* Pre condi.:
* Post cond.:
-----------------------------------------------------------------*/

// definició de variables
$nom = "Marta"; // variables de text
$cognom1 = "Salelles";
$cognom2 = "Ballarà";
$edat = 37; // variable numèrica
$poblacio = "Sabadell";

// Concatenació
echo "El teu nom és: ".$nom. "<br> \n";
echo "Els teus cognoms són: ".$cognom1." i ".$cognom2." <br> \n";
echo "Tens ".$edat." anys <br> \n";
echo "Vius a ". $poblacio." <br> \n";
?>

 
Llistat 2.2.4. Variables i cadenes concatenades
   
  Ja veieu que mitjançant el punt (.) hem unit les cadenes i les variables, tant si són numèriques com de text.
   
Atenció !
En PHP, no cal transformar les variables numèriques a text abans de concatenar-les amb un text o amb una altra variable que contingui text: el llenguatge ho fa automàticament.
   
   
  Arrays o matrius
 

Si volem tenir desats més d'un valor en una variable, podem utlilitzar els arrays o matrius. Aquest tipus de variable funciona de manera semblant a d'altres llenguatges, però amb alguna particularitat.

Imagineu que volguéssim tenir en una sola variable les possibles qualificacions acadèmiques de l'alumnat. Podem definir-ho de dues maneres:

   
Veure codi

Executar codi

<?php
/*-----------------------------------------------------------------
* Mòdul: 2 Pràctica: 2 Fitxer: exem2p25.php
* Autor: D116 Data:
* Descripció: Definició d'arrays
* Pre condi.:
* Post cond.:
-----------------------------------------------------------------*/

$nota[0]="Insuficient";
$nota[1]="Suficient";
$nota[2]="Bé";
$nota[]="Notable";
$nota[]="Excel·lent";

// Si no posem subíndex, automàticament s'assigna la següent
// posició lliure
echo "Qualificació: ". $nota[3];
echo "<br><br>";

// Definició abreujada dels elements d'un array (equivalent a
// l'anterior)
$nota=array("Insuficient","Suficient","Bé","Notable","Excel·lent");

echo "Qualificació: ". $nota[4];
?>

 
Llistat 2.2.5. Definició dels elements d'un array
   
Atenció !
Observeu que el primer número d'índex dels arrays és sempre 0 i no pas 1.
   
  Arrays associatius
  Una de les particularitats del PHP és la possibilitat de poder substituir els números d'índex per alguna paraula que associem a l'element. Així, seguint l'exemple anterior, podem definir:
   
Veure codi

Executar codi

<?php
/*-----------------------------------------------------------------
* Mòdul: 2 Pràctica: 2 Fitxer: exem2p26.php
* Autor: D116 Data:
* Descripció: Arrays associatius
* Pre condi.:
* Post cond.:
-----------------------------------------------------------------*/

$nota["I"]="Insuficient";
$nota["S"]="Suficient";
$nota["B"]="Bé";
$nota["N"]="Notable";
$nota["E"]="Excel·lent";

echo "Valors assignats directament <br>";
echo "Qualificació: ". $nota["B"];
echo "<br><br>";

// Definició abreujada dels element d'un array associatiu
$nota=array("I"=>"Insuficient","S"=>"Suficient","B"=>"Bé",
"N"=>"Notable","E"=>"Excel·lent");

echo "Definició abreujada d'elements <br>";
echo "Qualificació: ". $nota["E"];
?>

 
Llistat 2.2.6. Definició dels elements d'un array associatiu
   
  Ja veieu que en lloc d'assignar a cada element un número d'índex, li assignem una etiqueta o clau amb el qual es relaciona. Per fer-ho de manera abreujada, utilitzem l'operador => .
   
Informació
El PHP, a part de la funció array() que acabem de veure, ofereix una bona quantitat de funcions relacionades amb matrius o arrays que permeten, per exemple, ordenar-ne els elements, fer una cerca, avançar o retrocedir, etc.
   
Atenció !
És important tenir clar el concepte d'array associatiu, perquè el PHP ofereix una bona quantitat de variables que transmet mitjançant arrays d'aquest tipus ($_POST, $_GET, $_COOKIE, $_SERVER, etc.). En pràctiques posteriors en veurem el funcionament.
   
   
Amunt
Pràctica
1
2
3
4
   
Exercicis
Exercicis