PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con altri sistemi, la legge dal disco e la passa al modulo PHP TEMPO PHP come modulo di apache o come CGI elabora la pagina ed esegue il codice PHP compreso tra i marcatori <?php e?> Server Web (Apache) spedisce la pagina generata dal PHP L'utente visualizza la pagina che ha richiesto
I marcatori PHP I marcatori delimitano il codice PHP all'interno delle pagine (X)HTML Storicamente: <??> Oggi: <?php?> SOLO IL CODICE TRA I MARCATORI VIENE ESEGUITO COME CODICE PHP IL RESTO VIENE MANDATO IN OUTPUT SENZA ELABORAZIONI
Le istruzioni in PHP Le istruzioni PHP sono terminate da un punto e virgola Gli spazi sono ignorati Conviene comunque scrivere il codice in maniera ordinata altrimenti non ci si orienta I commenti possono essere su una sola riga (introdotti da due barre oblique //) oppure multilinea, circondati da /* e */ )
Variabili e costanti I linguaggi di programmazione manipolano dati e gli assegnano dei nomi per poterli gestire meglio Questi dati possono variare (variabili) o essere impostati una sola volta (costanti) COSTANTI: di solito si scrivono tutte maiuscole (per convenzione) sono create con l'istruzione define define ('PI_GRECO', 3.14);
Variabili Le variabili sono create al momento del bisogno (non è necessario metterle all'inizio del programma o definirle in qualche modo) Sono introdotte dal simbolo del dollaro $ Si assegna un valore con = Si assegna un riferimento con =& Sono case-sensitive $var1 diverso da $VAR1 $raggio = 2; $area = PI_GRECO * $raggio * $raggio;
Maiuscolo o minuscolo? PHP distingue maiuscolo e minuscolo nei nomi delle variabili ma non nei nomi delle funzioni PER NON SBAGLIARE: IGNORARE QUANTO SOPRA E FARE FINTA CHE PHP DISTINGUA SEMPRE MINUSCOLE E MAIUSCOLE
Tipi di dato Semplici alfanumerici (stringhe) numeri interi numeri in virgola mobile booleani null Complessi vettori matrici n-dimensionali vettori associativi (hash) oggetti string int float bool null array array array object
Le stringhe Sono il tipo di dato più usato in ambito web Apici semplici o doppi doppi: interpolazione delle variabili $nome = 'Luca'; echo ciao $nome! ; // stampa: ciao Luca! semplici: nessuna interpolazione delle variabili $nome = 'Luca'; echo 'ciao $nome!'; // stampa: ciao $nome! Caratteri speciali (escape) http://it.wikibooks.org/...#stringhe
I tipi numerici Virgola mobile introdotti da float creati in automatico tramite un numero con la virgola (inglese, quindi occore usare il punto come separatore decimale) Intero introdotto da int è il tipo predefinito se il numero non ha virgole La conversione tra tipo int e float è automatica
I vettori Tipo complesso per memorizzare in una sola variabile diversi dati, anche di diverso tipo Composto sempre da una chiave e un valore La chiave predefinita è un numero intero progressivo $vettore = array(); // Vettore vuoto $vettore = array('pere', 'mele', 'banane'); // Eterogeneo $vettore = array('pere', 123.45, 123, true);
I vettori (2) Vettori associativi (hash) o con chiave esplicita $vett = array( 'mele' => 50, 'pere' => 123, 'banane' => 25 ); Chiavi Valori Mentre i valori possono essere di qualsiasi tipo, le chiavi possono solo essere di tipo intero o stringa
Il tipo boolean È un tipo binario: vero o falso (true, false) Tutti gli altri tipi possono essere convertiti in boolean, valgono false: 0 (lo zero, sia intero che in virgola mobile) null '' e (cioè la stringa vuota) valgono true: tutti gli altri valori
Operatori matematici Matematici addizione (+) sottrazione (-) divisione (/) modulo o resto della divisione (%) moltiplicazione (*) incremento (++) decremento (--)
Operatori logici Logici && and or! (unario) xor
Operatori relazionali Restituiscono valori booleani (vero o falso) == (uguaglianza) === (identità)!= (disuguaglianza)!== (disuguaglianza stringente) <= (minore o uguale) < (minore) > (maggiore) >= (maggiore o uguale)
Controllo di flusso Serve a modificare il flusso normale del programma (lineare) Selezione binaria
Selezione multipla Semplifica il controllo di valori multipli di una variabile
Cicli I cicli permettono di ripetere blocchi di codice un certo numero di volte Ciclo for (contatore) for ($i = 1; $i <= 10 ; $i++ ){ } echo <p>$i</p> ; Ciclo while while ( $i <= 10 ) { } echo $i; $i++;
Cicli (2) Iterazione su vettori $dieci = array(1, 2, 3, 4,5, 6, 7, 8, 9, 10); foreach ( $dieci as $i ){ echo <p>$i</p> ; } $frutta = array( 'mele' => 10, 'pere' => 25); foreach ( $frutta as $f => $n) { } echo <p>$f = $n</p> ;