Programmazione Web PHP - Introduzione

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Introduzione al linguaggio C++
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
LINGUAGGIO DI PROGRAMMAZIONE C
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Introduzione al linguaggio C
JavaScript 2. JavaScript nelle pagine web. HTML e XHTML Gli script JavaScript sono utilizzabili sia in pagine HTML che XHTML XHTML impone che il codice.
PHP.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Generazione di Codice Intermedio
Massa Laura Mela Enrica
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Funzioni definite dall’utente
Canale A. Prof.Ciapetti AA2003/04
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
PHP PHP Hypertext Preprocessor
JavaScript: Array JavaScript: Array.
Cos’è un problema?.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Strutture di controllo in C -- Flow Chart --
Dichiarazioni e tipi predefiniti nel linguaggio C
I File.
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
Java base I: Sintassi e tipi di dati
Corso di PHP.
4 Tipi di dati & variabili
Javascript: fondamenti, concetti, modello a oggetti
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
CODIFICA Da flow-chart a C++.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Un trucchetto di Moltiplicazione per il calcolo mentale
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
14 marzo 2002 Avvisi:.
Esempi risolti mediante immagini (e con excel)
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Il linguaggio HTML Antonella Schiavon – settembre 2008 rev. 1 – aprile 2011.
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
CORSO DI PROGRAMMAZIONE II Lezione 22
Il linguaggio Fortran 90: 3. Procedure e Funzioni
JavaScript Generalità Cos'è JavaScript?
Programmazione ad oggetti
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
Introduzione a Javascript
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Transcript della presentazione:

Programmazione Web PHP - Introduzione 1 1 1 1 1 Devis Bianchini – Fondamenti di Informatica B 2008/2009 Programmazione Web PHP - Introduzione 1 Informazione 1 1 1 1 1

Programmazione Web - PHP: introduzione Cos’è il PHP? PHP: Hypertext Preprocessor è un linguaggio di programmazione utilizzato prevalentemente per la programmazione di pagine Web Alcune caratteristiche “tecniche” è un linguaggio di scripting è interpretato (non compilato) è server-side è debolmente tipizzato consente la programmazione Object Oriented • Ed inoltre.. è Open Source Programmazione Web - PHP: introduzione 2 2 2 2 2

Esecuzione di codice PHP Il codice PHP viene inserito in una pagina (X)HTML (sul server) Il codice PHP viene interpretato (sul server) Viene generata una nuova pagina (X)HTML 1 client server   Form (X)HTML action==“file.php” Interpretazione “file.php” MySQL  Nuova pagina (X)HTML Programmazione Web - PHP: introduzione 3 3 3 3 3

Programmazione Web - PHP: introduzione Preparare il tutto Uno script PHP è salvato in un file di testo avente come estensione .php Per esempio: Salviamo il tutto in un file dal nome ciao.php all’interno della root del nostro Web server: la pagina sarà quindi accessibile all’indirizzo http://localhost/ciao.php <?php echo “Ciao mondo!”; ?> Programmazione Web - PHP: introduzione 4 4 4 4 4

Struttura del codice PHP (I) Il codice PHP è racchiuso tra due tag <?php e ?> Le istruzioni PHP terminano con il punto e virgola I commenti hanno tre diversi stili <?php ... codice PHP ... ?> echo 'Hello '; echo 'world!'; /* Autore: Devis Bianchini Ultima modifica: 15 aprile 2011 */ echo '<p>Ordine gestito.</p>'; // Inizio stampa ordine echo '<p>Ordine gestito.</p>'; # Inizio stampa ordine Programmazione Web - PHP: introduzione 5 5 5 5 5

Struttura del codice PHP (II) Notazione alternativa <script language=“php”> ... codice PHP ... </script> Programmazione Web - PHP: introduzione 6 6 6 6 6

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 7 7 7 7 7

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 8 8 8 8 8

Esempio: processa_modulo_ordine.php Programmazione Web - PHP: introduzione 9 9 9 9 9

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 10 10 10 10 10

Programmazione Web - PHP: introduzione Variabili Nome di una variabile (identificatore): Inizia con il simbolo $ Formato da lettere, cifre e underscore ‘_’ Lunghezza illimitata Non può iniziare con una cifra Case sensitive: $qviolino  $Qviolino   Una variabile viene creata nel momento in cui viene assegnata la prima volta $quantita = 0; $costo = 0.00; ... $quantita = $qviolino; Programmazione Web - PHP: introduzione 11 11 11 11 11

Programmazione Web - PHP: introduzione Tipi di variabili Tipo Natura del dato integer Numeri interi double Numeri reali string Stringhe di caratteri boolean Valori logici (true o false) array Vettori di dati Esistono altri due tipi “speciali”: NULL: variabili cui non è assegnato un valore o sono state assegnate con NULL Resource: rappresentano risorse esterne (esempio: connessione al database) Programmazione Web - PHP: introduzione 12 12 12 12 12

Tipi di variabili: array (I) Programmazione Web - PHP: introduzione 13 13 13 13 13

Tipi di variabili: array (II) Programmazione Web - PHP: introduzione 14 14 14 14 14

Programmazione Web - PHP: introduzione Tipizzazione in PHP Le variabili sono molto “elastiche” nell’assegnamento del tipo di dati Casting $quantita = 0; $quantita = ‘Hello’; $quantita = 0; $costo = (double)$quantita; Programmazione Web - PHP: introduzione 15 15 15 15 15

Costanti Mantengono un valore (come una variabile), che però non può essere cambiato define(<nome-costante>, <valore>) define('PREZZO_FLAUTO', 2500); define('PREZZO_VIOLINO', 8000); define('PREZZO_OBOE', 5400); define('PREZZO_LIUTO', 11000); Programmazione Web - PHP: introduzione 16 16 16 16 16

Variabili predefinite PHP mette a disposizione un gran numero di variabili predefinite Sono principalmente dedicate a descrivere il server su cui è in funzione, le richieste HTTP, variabili dell’ambiente di esecuzione Alcune variabili predefinite possono essere dipendenti dalla piattaforma <?php echo “<a href=\”http://”, $_SERVER[“HTTP_HOST”], // nome del sito $_SERVER[“PHP_SELF”], // nome dello script “\”>Link a me stesso</a>\n”; ?> Programmazione Web - PHP: introduzione 17 17 17 17 17

Lavorare con le variabili È possibile inserire direttamente una variabile semplice in una stringa Tuttavia, le stringhe tra apici semplici non applicano alcuna sostituzione: 2 oboe echo "$qoboe oboe <br />"; echo ‘$qoboe oboe <br />’; $qoboe oboe Programmazione Web - PHP: introduzione 18 18 18 18 18

Accesso alle variabili del modulo (I) L’accesso ai campi del modulo può avvenire mediante l’uso di array associativi: method="post“  $_POST['qviolino'] method="get“  $_GET['qviolino'] 'qflauto' 2 'qviolino' 3 'qoboe' 'qliuto' 4 Programmazione Web - PHP: introduzione 19 19 19 19 19

Accesso alle variabili del modulo (II) I valori dei campi del modulo possono essere copiati in altre variabili <?php $qflauto = $_POST['qflauto']; $qviolino = $_POST['qviolino']; $qoboe = $_POST['qoboe']; $qliuto = $_POST['qliuto']; ?> Programmazione Web - PHP: introduzione 20 20 20 20 20

Accesso alle variabili del modulo (III) L’operatore . (punto) genera la concatenazione delle stringhe Programmazione Web - PHP: introduzione 21 21 21 21 21

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 22 22 22 22 22

Programmazione Web - PHP: introduzione Operatori (I) Operatori aritmetici Operatore di concatenazione delle stringhe $a = 'Strumenti Musicali '; $b = 'in Franciacorta'; $titolo = $a . $b; Programmazione Web - PHP: introduzione 23 23 23 23 23

Operatori (II) Operatore di assegnamento <variabile> = <espressione> Operatore di assegnamento Operatori di assegnamento combinato $b = 6 + ($a = 5); Programmazione Web - PHP: introduzione 24 24 24 24 24

Programmazione Web - PHP: introduzione Operatori (III) Operatore di incremento (++) e decremento (--) Sono entrambi disponibili in due forme Prima della variabile Dopo la variabile prima $a viene incrementato (6) e poi visualizzato (6) $a = 5; echo ++$a; prima $a viene visualizzato (5) e poi Invìcrementato (6) $a = 5; echo $a++; $a = 3; $b = 6; echo ($a--) * (++$b); $a: 2 $b: 7 echo: 21 Programmazione Web - PHP: introduzione 25 25 25 25 25

Programmazione Web - PHP: introduzione Operatori (IV) Operatore di confronto Operatore identità: operandi uguali e dello stesso tipo $a = 0; $b = ‘0’; $a == $b: true $a === $b: false Programmazione Web - PHP: introduzione 26 26 26 26 26

Programmazione Web - PHP: introduzione Operatori (V) Operatori logici Programmazione Web - PHP: introduzione 27 27 27 27 27

Programmazione Web - PHP: introduzione Operatori (VI) Operatore condizionale (ternario) ( <condizione> ? <valore se vera> : <valore se falsa> ) echo ($voto >= 18 ? 'promosso' : 'bocciato') $max = ($a >= $b ? $a : $b) $max3 = ($a >= $b && $a >= $c ? $a : ($b >= $c ? $b : $c)) echo 'Hai ordinato '.$qviolino.' violin‘ .($qviolino == 1 ? 'o' : 'i') Programmazione Web - PHP: introduzione 28 28 28 28 28

Programmazione Web - PHP: introduzione Type juggling Alcune conversioni di tipo avvengono automaticamente in base agli operatori utilizzati nelle espressioni La conversione non modifica il tipo degli operandi, che rimangono inalterati <?php $a = “0”; // $a è la stringa “0” $a .= 2; // $a ora è una stringa che vale “02” $a += 2; // $a ora è l’intero 4 $b = $a + 1.3; // $b vale 5.3, $a rimane inalterata ?> Programmazione Web - PHP: introduzione 29 29 29 29 29

Programmazione Web - PHP: introduzione Altri operatori Alcuni operatori sono tipici del linguaggio PHP controllo degli errori @: premettendo tale operatore ad un’espressione eventuali messaggi di errore non sono visualizzati esecuzione di script della shell ` (apice rovesciato o backtick): il testo tra apici rovesciati viene interpretato come comando della shell, eseguito ed eventualmente assegnato ad una variabile <?php $dir = @`ls -l`; // in Windows il comando è // $dir = @`dir`?> ?> Programmazione Web - PHP: introduzione 30 30 30 30 30

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 31 31 31 31 31

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 32 32 32 32 32

Programmazione Web - PHP: introduzione Funzioni di variabili Per testare o modificare lo stato di una variabile si possono usare le seguenti funzioni: isset($var): true se $var esiste, altrimenti false isset($a, $b, $c, ... ): true se tutte esistono, altrimenti false unset($var): elimina $var empty($var): true se $var non esiste o ha valore zero, altrimenti false $qviolino = 3; echo 'echo1: ' . isset($qviolino) . '<br />'; // TRUE echo 'echo2: ' . isset($qtimpani) . '<br />'; // FALSE echo 'echo3: ' . empty($qviolino) . '<br />'; // FALSE echo 'echo4: ' . empty($qtimpani) . '<br />'; // TRUE Programmazione Web - PHP: introduzione 33 33 33 33 33

Funzioni di accesso al tipo is_boolean($a): verifica se la variabile contiene un valore booleano is_integer($a): verifica se la variabile contiene un numero intero is_float($a), is_double($a), is_array($a), is_resource($a) is_null($a): verifica se la variabile contiene il valore null is_numeric($a): verifica se il contenuto della variabile è compatibile con un valore numerico (ossia se è un numero o una stringa convertibile in numero) gettype($a): restituisce il nome del tipo della variabile sotto forma di stringa Programmazione Web - PHP: introduzione 34 34 34 34 34

Programmazione Web - PHP: introduzione L’istruzione if if(<condizione>) <istruzioni> Il blocco <istruzioni> viene eseguito solo se <condizione> è vera if($quantita_totale == 0) echo 'Non hai ordinato alcun articolo! <br />'; if($costo_totale >= 30000) { echo 'Hai diritto ad uno sconto del 10% <br />'; } Programmazione Web - PHP: introduzione 35 35 35 35 35

Programmazione Web - PHP: introduzione L’istruzione else else <istruzioni> Il blocco <istruzioni> viene eseguito solo se la condizione del precedente if è falsa if($quantita_totale == 0) echo "Non hai ordinato alcun articolo! <br />"; else { echo 'Ecco la lista degli articoli: <br />'; echo '<ul>'; echo "<li>$qflauto flauti</li>"; echo "<li>$qviolino violini</li>"; echo "<li>$qoboe oboe</li>"; echo "<li>$qliuto liuti</li>"; echo "</ul>"; } Programmazione Web - PHP: introduzione 36 36 36 36 36

Programmazione Web - PHP: introduzione L’istruzione elseif elseif <condizione>) <istruzioni> È usato quando si hanno più di due rami decisionali:   Viene eseguito solo il blocco di istruzioni corrispondente alla prima condizione vera Se nessuna condizione vera, viene eseguito il blocco della else (se specificata) if($costo_totale <= 10000) $sconto = 0.0; elseif($costo_totale > 10000 && $costo_totale <= 20000) $sconto = 0.10; elseif($costo_totale > 20000 && $costo_totale <= 40000) $sconto = 0.20; elseif($costo_totale > 40000 && $costo_totale <= 80000) $sconto = 0.25; else $sconto = 0.30; Programmazione Web - PHP: introduzione 37 37 37 37 37

Programmazione Web - PHP: introduzione L’istruzione switch switch (<condizione>) { case <valore1>: <codice> break; case <valore2>: <codice> break; .... default: <codice>; break; } Il costrutto switch permette di diversificare l’operato del programma al valore dell’espressione testata switch ($nome) { case 'Luca': case 'Giorgio': case 'Franco': echo "Ciao, vecchio amico!"; break; case 'Mario': echo "Ciao, Mario!"; break; default: print "Benvenuto, chiunque tu sia"; } Programmazione Web - PHP: introduzione 38 38 38 38 38

Programmazione Web - PHP: introduzione Iterazioni Sono utilizzate quando è necessario eseguire più volte lo stesso blocco di istruzioni   Programmazione Web - PHP: introduzione 39 39 39 39 39

Programmazione Web - PHP: introduzione Iterazioni Sono utilizzate quando è necessario eseguire più volte lo stesso blocco di istruzioni   Programmazione Web - PHP: introduzione 40 40 40 40 40

Programmazione Web - PHP: introduzione Ciclo while while(<condizione>) <istruzioni> Il blocco <istruzioni> viene eseguito fino a quando <condizione> è vera Programmazione Web - PHP: introduzione 41 41 41 41 41

Programmazione Web - PHP: introduzione Ciclo for for(<istruzione1>; <condizione>; <istruzione2>) <istruzioni> Il significato è esprimibile in termini di ciclo while come segue <istruzione1>; while(<condizione>) { <istruzioni> <istruzione2>; } Programmazione Web - PHP: introduzione 42 42 42 42 42

Programmazione Web - PHP: introduzione Ciclo for for(<istruzione1>; <condizione>; <istruzione2>) <istruzioni> Il significato è esprimibile in termini di ciclo while come segue <istruzione1>; while(<condizione>) { <istruzioni> <istruzione2>; } Programmazione Web - PHP: introduzione 43 43 43 43 43

Programmazione Web - PHP: introduzione Ciclo do..while do <istruzioni> while (<condizione>) È simile al ciclo while, ma <condizione> viene testata dopo l’esecuzione di <istruzioni> Programmazione Web - PHP: introduzione 44 44 44 44 44

Programmazione Web - PHP: introduzione Ciclo foreach foreach(array as $valore) istr Il ciclo si ripete tante volte quanti sono gli elementi dell’array e all’interno del ciclo ogni volta è disponibile, nella variabile $valore, il valore dell’elemento corrispondente all’iterazione Questa versione è particolarmente utile per gli array associativi; oltre al valore è presente anche la chiave dell’elemento, presente nella variabile $chiave foreach(array as $chiave=>$valore) istr Programmazione Web - PHP: introduzione 45 45 45 45 45

Programmazione Web - PHP: introduzione Funzioni function nome_funzione ($arg1, $arg2) { // codice della funzione (corpo) // l’istruzione return serve per restituire un valore // come risultato ed è opzionale return <risultato>; } Programmazione Web - PHP: introduzione 46 46 46 46 46

Funzioni con argomenti di default function nome_funzione ($arg1, $arg2=“default”) { // codice della funzione (corpo) return <risultato>; } . . . $ris1 = nome_funzione(“primo”,”secondo”); // senza l’uso del // default $ris2 = nome_funzione(“primo”); // con l’uso del default Programmazione Web - PHP: introduzione 47 47 47 47 47

Esempio: gestione di un ordine <body> <h1>Strumenti Musicali in Franciacorta</h1> <h2>Gestione Ordine<h2> <?php echo '<p>Ordine gestito alle ore '; echo date("H:i, jS F"); echo '. Grazie per aver scelto i nostri prodotti.</p>'; ?> </body> Argomento della funzione date() = stringa che specifica il formato: H = ore (in formato 24-ore) i= minuti j = giorno del mese S = suffisso ordinale (tipicamente, th) F = nome del mese Programmazione Web - PHP: introduzione 48 48 48 48 48

Esempio: gestione di un ordine Programmazione Web - PHP: introduzione 49 49 49 49 49

Programmazione Web - PHP: introduzione Visibilità La visibilità (o scope) di una variabile $v è la porzione del codice in cui è visibile $v: Le variabili superglobali sono visibili ovunque nello script (es., $_GET, $_POST, $_SERVER) Le costanti sono visibili ovunque nello script Le variabili globali sono visibili ovunque nello script, tranne che nelle funzioni Le variabili dichiarate globali nelle funzioni si riferiscono alle omonime variabili dichiarate globali fuori delle funzioni Le variabili dichiarate statiche in una funzione sono visibili solo nella funzione ma mantengono il loro valore tra una chiamata e l’altra della funzione Le variabili locali create in una funzione sono visibili solo nelle funzione e scompaiono al termine della esecuzione della funzione Programmazione Web - PHP: introduzione 50 50 50 50 50

Programmazione Web - PHP: introduzione Visibilità: esempio $a = 1; function nome_funzione () { global $a; // senza questa riga la funzione non stampa // niente echo $a; } . . . nome_funzione(); Programmazione Web - PHP: introduzione 51 51 51 51 51

Programmazione Web - PHP: introduzione Classi e oggetti Nel linguaggio PHP il concetto di classe è quello tradizionale dei linguaggi di programmazione ad oggetti Programmazione Web - PHP: introduzione 52 52 52 52 52

Programmazione Web - PHP: introduzione Esempio Le variabili di stato della classe saranno disponibili a tutti i metodi della classe stessa tramite l’uso del prefisso speciale $this-> Programmazione Web - PHP: introduzione 53 53 53 53 53

Programmazione Web - PHP: introduzione Istanziazione Una volta definita la struttura della classe, è possibile istanziare uno o più oggetti di quel tipo lasciando i valori di default specificando nuovi parametri al momento dell’istanziazione Programmazione Web - PHP: introduzione 54 54 54 54 54

Invocazione dei metodi di una classe Dopo aver istanziato la classe, i metodi della classe possono essere invocati per andare a modificare le variabili di stato della classe stessa le invocazioni dei metodi su una istanza sono indipendenti dalle invocazioni di metodi su istanze diverse Programmazione Web - PHP: introduzione 55 55 55 55 55

Programmazione Web - PHP: introduzione PHP 5 e oggetti (I) La gestione delle classi e della programmazione ad oggetti è stata enormemente potenziata nell’ultima versione di PHP (PHP 5) sono stati introdotti i modificatori di visibilità private, public e protected, su cui valgono le comuni regole della programmazione a oggetti sono stati introdotti i metodi _construct (nome univoco per il costruttore) e _destruct (nome univoco metodo distruttore) è possibile passare gli oggetti per riferimento e non per valore Programmazione Web - PHP: introduzione 56 56 56 56 56

Programmazione Web - PHP: introduzione PHP 5 e oggetti (II) In PHP 5 è stato anche potenziato il meccanismo dell’ereditarietà (parola chiave extends) sono state introdotte le interfacce è stato introdotto l’operatore instance of è possibile definire metodi e classi come final è stato introdotto l’uso di static per definire proprietà e metodi statici Programmazione Web - PHP: introduzione 57 57 57 57 57

Costruttori e distruttori PHP 5 ha introdotto un nome standardizzato per i costruttori, _construct se la classe viene rinominata, non è necessario modificare anche il nome del suo costruttore Una grossa novità in PHP 5 è l’introduzione del metodo distruttore, _destruct() utile per operazioni di pulizia, come l’eliminazione di file temporanei o la chiusura di connessioni a database (garbage collection) la garbage collection avviene nel momento in cui viene eliminato l’ultimo riferimento all’oggetto Programmazione Web - PHP: introduzione 58 58 58 58 58

Programmazione Web - PHP: introduzione Esempio Programmazione Web - PHP: introduzione 59 59 59 59 59

Programmazione Web - PHP: introduzione Interfacce Grazie all’uso delle interfacce, viene superato il vincolo dell’ereditarietà da una singola classe; infatti una classe può implementare più interfacce Programmazione Web - PHP: introduzione 60 60 60 60 60

L’operatore instance of Viene utilizzato per verificare la classe di un oggetto Programmazione Web - PHP: introduzione 61 61 61 61 61

Programmazione Web - PHP: introduzione Metodi e classi final Se un metodo è dichiarato final, non può essere effettuato per esso l’overload dalle classi che lo ereditano Se una classe è dichiarata come final, non può essere sottoposta al meccanismo dell’ereditarietà Programmazione Web - PHP: introduzione 62 62 62 62 62

Metodi e proprietà static Programmazione Web - PHP: introduzione 63 63 63 63 63

Riuso del codice PHP (I) L’inclusione di codice PHP in altri file avviene tramite la funzione require(nome_file) Per evitare di includere un file più volte, si usa require_once inclusione.php main.php Programmazione Web - PHP: introduzione 64 64 64 64 64

Riuso del codice PHP (I) Programmazione Web - PHP: introduzione 65 65 65 65 65

Riuso del codice PHP (II) header.php inclusione.php footer.php main.php Programmazione Web - PHP: introduzione 66 66 66 66 66

Programmazione Web - PHP: introduzione require vs include Nelle ultime versioni del PHP non viene fatta nessuna distinzione tra l’uso di require e di include, entrambe le funzioni servono per includere file esterni e hanno la medesima sintassi Le due funzioni in realtà si comportano in modo diverso solo nel caso in cui ci siano degli errori di inclusione del file include(nome_file) restituisce un warning, mentre lo script prosegue require(nome_file) segnala l’errore e blocca lo script entrambe le funzioni hanno l’estensione _once per evitare il caricamento multiplo dello stesso file Programmazione Web - PHP: introduzione 67 67 67 67 67

Programmazione Web - PHP: introduzione La funzione _autoload Se definita, la funzione _autoload viene automaticamente chiamata qualora si stia cercando di istanziare una classe non ancora definita Programmazione Web - PHP: introduzione 68 68 68 68 68

Esempi: riuso del codice in PHP Programmazione Web - PHP: introduzione 69 69 69 69

Definizione di paragrafi (p) Funzione che genera il codice XHTML di un paragrafo (tag <p>) Programmazione Web - PHP: introduzione 70 70 70 70 70

Definizione di intestazioni (h) Funzione che genera il codice XHTML di una intestazione (tag <h*>, valore di default pari a 1) Programmazione Web - PHP: introduzione 71 71 71 71 71

Definizione di interruzioni di riga (br) Funzione che genera il codice XHTML di un certo numero di interruzioni di riga (tag <br>, valore di default pari a 1) Programmazione Web - PHP: introduzione 72 72 72 72 72

Definizione di link (a) Funzione che genera il codice XHTML di un link ipertestuale (tag <a>) Programmazione Web - PHP: introduzione 73 73 73 73 73

Definizione di link (img) Funzione che genera il codice XHTML di una immagine (tag <img>) Programmazione Web - PHP: introduzione 74 74 74 74 74

Definizione di liste non ordinate (ul) Funzione che genera il codice XHTML di una lista non ordinata (tag <ul> e <li>) Analogo per le liste ordinate (tag <ol>) Programmazione Web - PHP: introduzione 75 75 75 75 75

Definizione di moduli (form) Funzione che genera il codice XHTML di un modulo (tag <form>) Programmazione Web - PHP: introduzione 76 76 76 76 76

Definizione di campi in un modulo Funzione che genera il codice XHTML di un pulsante di invio (submit) Analogo per gli altri tipi di campi Programmazione Web - PHP: introduzione 77 77 77 77 77

Definizione di tabelle (table) Funzione che genera il codice XHTML di una tabella (tag <table>) Programmazione Web - PHP: introduzione 78 78 78 78 78

Generazione veloce della pagina XHTML Programmazione Web - PHP: introduzione 79 79 79 79 79

Programmazione Web - PHP: introduzione Esempio Programmazione Web - PHP: introduzione 80 80 80 80 80

Programmazione Web - PHP: introduzione Esempio Programmazione Web - PHP: introduzione 81 81 81 81 81

Programmazione Web - PHP: introduzione Altre novità in PHP 5 Gestione delle eccezioni con try/throw/catch Programmazione Web - PHP: introduzione 82 82 82 82 82