Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR -...

24
Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - [email protected]

Transcript of Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR -...

Page 1: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Array e Funzioni in PHPLaboratorio di Progettazione Web

AA 2007/2008

Chiara Renso

ISTI- CNR - [email protected]

Page 2: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

ArrayGli array sono contenitori in grado di memorizzare una

sequenza di elementi indicizzati . Rispetto alla variabili possono contenere tanti valori diversi. Gli array di PHP sono di tipo associativo, ovvero associano un elemento ad una chiave

0 1 2 3 4

pippo pluto paperino paperone topolino

Indice array o chiave

elementi array

Page 3: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Creare un array

Gli array si creano con il costrutto array()

$myarray = array(“pippo”,”pluto”,”paperino”,”paperone”,”topolino”);

Abbiamo creato un array di cinque elementi, alla posizione 0 abbiamo “pippo”, e cosi via fino alla quinta posizione (elemento 4).

Page 4: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Creare un array

Gli array si possono creare anche assegnando i valori ai singoli elementi

$myarray[0]=“pippo”;

L’indice se non specificato diversamente è numerico ed inizia da 0. Altrimenti possiamo definire esplicitamente le chiavi sia numeriche che non.

$myarray1 = array(1=>“pippo”,0=>”pluto”,3=>”paperino”,4=>”paperone”,2=>”topolino”);

$myarray2 = array('personaggio1'=>"pippo",'personaggio2'=>"pluto",'personaggio3'=>"paperino",'personaggio4'=>"paperone",'personaggio5'=>"topolino")

Page 5: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Accedere un array

L’accesso agli elementi può avvenire tramite l’indice

$myarray[1] ; indica l’elemento “pluto”

o tramite la chiave definita

$myarray2[‘personaggio1’];

Page 6: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Accedere gli elementi di un array

Il costrutto foreach permette di effettuare cicli sugli elementi dell’array

foreach(array as item) dove item indica l’indice dell’array

Esempio:

foreach ($myarray as $item)

echo “$item <BR>”;

Page 7: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Aggiungere un elemento ad un array

$array[] = $newelement:

Viene aggiunto il nuovo elemento alla fine dell’array

$myarray[]=“archimede”;

Page 8: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Array Multidimensionali

Un elemento di un array può contenere a sua volta un array, creando cosi un array multidimensionale

<? $myarray=array(array("pippo","pluto"),array("topolino","paperino"));

echo $myarray[0][1];

?>

Page 9: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Manipolazione degli array

Contare gli elementi: count(array) e sizeof(array)

Randomizzazione di un array shuffle(array))

shuffle richiede che il generatore di numeri casuale sia inzializzato dall’istruzione srand

Page 10: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Randomizzare un array - esempio

<?

$pizze=array(“margherita”,”capricciosa”,”quattro stagioni”);

srand((double)microtime() * 1000000); // generatore random

shuffle($pizze);

echo $pizze[0];

?>

Page 11: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Manipolazione di un array

Le funzioni sort() e rsort() permettono di ordinare un array in base agli elementi

sort($myarray); rsort($myarray);

Non restituiscono un valore ma ordinano direttamente l’array passato come parametro

explode() e implode() permettono di convertire un array in una stringa e una stringa in un array per mezzo di un carattere separatore

$mystring = implode(“|”,$myarray);

$myarray= explode(“|”,$mystring);

Page 12: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

FunzioniLe funzioni sono blocchi di codice che possono essere chiamati da più

punti dello script php

function nome_funzione (arg_1,arg_2,...,arg_n)

{

…. Script….

return valore;

}

La funzioni possono avere argomenti in input (arg1,arg_2, ... arg_n) e possono restituire un valore

Le variabili definite dentro una funzione hanno come scope la funzione stessa. Quindi al di fuori della funzione non esistono.

Page 13: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Funzioni

Creazione e chiamata di funzioni con restituzione di valori

<? function add()

{

$somma=3+5;

return $somma;

}

echo add();

?>

Page 14: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Funzioni

Chiamata di funzione senza restituzione di valori

<? function stampa()

{

echo “Funzione!”;

}

stampa();

?>

Page 15: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Funzioni con argomenti

<? function add1($a,$b)

{

$somma=$a+$b;

return $somma;

}

echo add1(3,5);

?>

Page 16: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Funzioni Le funzioni possono ritornare più valori, sotto forma di array

<? function tornaarray()

{

$myarray=array("pippo","pluto","paperino");

return $myarray;

}

$arraytornato=tornaarray();

echo $arraytornato[1];

?>

Page 17: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Inclusione di file

Per condividere e riutilizzare porzioni di script e funzioni si usa frammentare il codice in più file in modo da poterlo includere quando serve

include (nomefile);

L’istruzione include va posizionata all’inizio dello script php o comunque prima dei riferimenti a variabili o funzioni definiti nel file da includere

L’interprete PHP segnala errore se il file non viene trovato, proseguendo comunque l’esecuzione

require (nomefile) è analogo tranne che genera un errore irreversibile qualora il file non venga trovato

Page 18: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.1

Creare l’array presentato nei lucidi ([pippo, pluto, etc])

Visualizzare sul browser tutto l’array formattato come tabella, una riga di intestazione “Personaggi” in grassetto e poi una riga per ogni elemento (una sola colonna)

Aggiungere all’array un nuovo personaggio (archimede) e ri-visualizzare la tabella

Page 19: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.2

In riferimento all’array $myarray definito nell’esercizio precedente (“pippo”,”pluto”,.....) , realizzare uno script php per ordinare l’array (funzione sort):

Eseguire una stampa di tutti gli elementi dell’array, eseguire il sort, ristampare tutti gli elementi.

Notare le differenze.

Eseguire di seguito una rsort.

Ristampare gli elementi

Page 20: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.3 Scrivere una funzione php che riceva in input un array,

esegua un ordinamento e restituisca come valore il primo elemento.

Richiamare la funzione dallo script php con argomento l’array $myarray definito negli esercizi precedenti

Stampare il risultato restituito dalla funzione

Page 21: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.4

Cambiare il colore dello sfondo della pagina in base al giorno della settimana.

Suggerimento: selezionare nella data odierna il giorno della settimana (w) e usare un array di colori

Alternativamente usare il costrutto condizionale

Page 22: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.5Riprendete l’esercizio sul messaggio di benvenuto dipendente

all’orario.

Aggiungere

Un messaggio di data e ora corrente

Un proverbio casuale tra una scelta di tre proverbi (definite un array dove ogni elemento è un proverbio, uso funzione shuffle)

Page 23: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.6

Scrivere una funzione controllologin($log,$pass) che riceva in input un login e una password ed esegua un controllo di login password rispetto a due valori delle variabili $login e $password definite all’interno della funzione in modo statico (ad es. siano $login=“admin” e $password=“nimda”).

Il controllo dovrà generare la scritta “login e password ok” quando il login in input coincide con $login e la password con $password. Dovrà invece generare la scritta “login sbagliato” quando il login risulta errato e “password errata” quando la password non coincide.

Richiamare la funzione dallo script php con valori diversi in modo da generare tutti e tre i casi

Modificare la funzione affinché riceva login e password come un array (ad es. infologin[])

Page 24: Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it.

Esercizio 3.7 Spostare la funzione controllologin(...) nel file

checklogin.php e includerlo nello script precedente con la funzione include

Testare il funzionamento dello script