Cloud informatica V anno Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting lato server sono: - NON ha una vita propria - le sue istruzioni sono incluse nelle pagine HTML attraverso tag - aggiunge funzionalità dei linguaggi di programmazione alle pagine HTML - viene utilizzato in ambiente intranet/Internet (client/server) per produrre programmi eseguiti sul server fornendo i risultati al client. PHP è un linguaggio interpretato, pertanto ogni programma è presente in formato sorgente e ogni istruzione è prima interpretata e poi eseguita. Perché PHP? Ci sono molte ragioni per scegliere PHP: - è gratuito - è open source - è multipiattaforma - è facile da imparare - è potente e presenta numerose funzioni - è stabile, perché: - il server non deve essere riattivato frequentemente - ogni nuova versione non apporta modifiche radicali con le versioni precedenti - interagisce con i database Primi passi con PHP Le istruzioni PHP possono: - essere inserite nel file XHTML tramite tag (embedded PHP) - far parte di file di soli comandi PHP In entrambe i casi, per scrivere un file PHP ed eseguirlo occorre: - scrivere un file con un comune editor - salvare il file con estensione .php - inserirlo nella directory per la pubblicazione di script lato server Le istruzioni PHP Un programma PHP viene incorporato in un documento XHTML includendo il codice PHP all’interno di speciali tag, secondo la sintassi: <?php ?> //Tag di apertura canonico //Codice PHP //Tag di chiusura canonico Le istruzioni PHP in HTML Come detto, un programma PHP viene incorporato in un documento XHTML includendo il codice PHP all’interno di speciali tag, secondo la sintassi: In questo caso l’istruzione <?php … ?> restituisce la stampa del testo “Primo programma PHP!” “Ciao a tutti” nella prima pagina del nostro sito. Le istruzioni print ed echo sono equivalenti e permettono di visualizzare le stringhe. Variabili: tipi e valori PHP, come molti linguaggi di scripting, prevede un controllo non rigido sui tipi delle variabili. Non è necessaria alcuna dichiarazione di variabile e i tipi vengono associati con l’assegnazione di valori. Possiamo definire la variabile X di tipo intero e assegnarle il valore 10 nel seguente modo: $X = 10; I nomi delle variabili sono preceduti dal simbolo $; possono essere usate lettere, numeri e il trattino basso (_, underscore). Il primo carattere dopo il $ non può essere un numero. L’assegnazione avviene tramite l’operatore =. Il tipo è dedotto dal valore assegnato, in questo caso 10. Valori predefiniti ed errori notice Poiché le variabili non hanno tipi espressamente dichiarati, il valore di una variabile non ancora assegnata viene interpretato a seconda del contesto. In PHP possiamo riferirci a una variabile non inizializzata. Inserendo nel codice un’istruzione riferita a una variabile non inizializzata PHP produrrà una segnalazione di tipo notice. Gli errori notice sono quelli di livello più basso e, se non abilitati, non sono visualizzati da PHP. Test sul tipo delle variabili Durante l’esecuzione di un programma è utile conosce il tipo assegnato a una variabile in un preciso istante. Per fare ciò si utilizzano le seguenti funzioni PHP predefinite: Eliminare una variabile PHP permette di eliminare una variabile attraverso la comoda funzione unset();, basata sulla seguente sintassi: unset(<variabile>); Dopo l’esecuzione della funzione unset(); la variabile sarà definitivamente eliminata dal programma. Sarà come se la variabile in questione non fosse mai esistita. Variabili predefinite PHP mette a disposizione del programmatore alcune variabili predefinite: Solitamente queste variabili contengono informazioni circa l’ambiente di esecuzione dello script PHP e presentano un valore preimpostato. Le costanti Una costante è una particolare variabile il cui valore, dopo l’assegnazione, NON può più essere modificato. Una costante è dichiarata tramite la funzione define(); che opera secondo la seguente sintassi: define(“<NomeCostante>”, <Valore>); In cui il valore definito in <Valore> viene associato al nome della costante (senza $ iniziale). È buona norma scrivere le costanti interamente in maiuscolo. Ciò ne facilita l’individuazione nel codice. Gli operandi Operandi e operatori concorrono nella costruzione delle espressioni PHP. Gli operandi costanti sono quantità esplicite il cui tipo NON va dichiarato. Sono presenti in numero esiguo, e sono: - valori interi, rappresentano i numeri senza decimali, positivi e negativi - valori reali (o doppi, double), rappresentano i numeri con parte decimale. Si usa la dot notation anglosassone e NON la virgola (1,2 1.2) - valori booleani, rappresentano i valori TRUE (vero) e FALSE (falso). Da scrivere in maiuscolo. - valori stringa, rappresentano sequenze di caratteri, gestite anche grazie a caratteri speciali e funzioni predefinite. Gli operatori Come detto, operandi e operatori concorrono nella costruzione delle espressioni PHP. Gli operatori si dividono in: - operatori di assegnamento (=) - operatori aritmetici binari (+, -, *, %, /) e unari (++, --) - operatori di concatenamento tra stringhe (.) - operatori compattati (+, -, *, %, /, . inseriti prima dell’assegnazione) - operatori relazionali ( ==, !=, >, >=, <, <=, ===) - operatori logici (OR ||, AND &&, XOR, !) - operatori sui bit (&, |, ^, ˜, >>, <<) - un operatore ternario (?:) Priorità e precedenza di operatori Se in un’espressione compaiono più operatori occorre stabilire un livello di precedenza o priorità tra gli operatori stessi. Se gli operatori hanno la stessa precedenza, vengono eseguiti in un ordine che va da sinistra a destra. È possibile cambiare l’ordine inserendo parentesi tonde, in questo caso saranno calcolate prima le espressioni nelle parentesi più interne. Per una maggiore chiarezza è comunque buona norma inserire sempre le parentesi. Conversione di variabili Come accennato, PHP converte automaticamente il tipo di una variabile quando il contesto lo richiede. Il programmatore può comunque forzare la conversione. Avremo dunque: - conversioni implicite (effettuate dal sistema) - conversioni esplicite (effettuate dal programmatore) Conversione implicita Per le conversioni implicite valgono le seguenti regole: Conversione esplicita Per le conversioni esplicite il programmatore può effettuare: - Funzioni di conversione: - Intval(<Parametro>), converte <Parametro> in intero - Doubleval(<Parametro>), converte <Parametro> in double - Strval(<Parametro>), converte <Parametro> in stringa - Casting: - Un’espressione può essere preceduta dal nome del tipo di arrivo in cui convertire (tra tonde): $X = (int) 234.89; $X conterrà 234 i tipi possibili sono: int o integer, double, float o real, bool o boolean - Funzione settype(<NomeVariabile>, <Tipo>): - La variabile data come primo parametro viene convertita nel tipo specificato (tra virgolette) come secondo parametro: $NumeroGatti = “44 Gatti”; settype($NumeroGatti, “int”); restituisce 44