PHP ESSENTIALS #3. By WI400 Team. : basi del linguaggio

Documenti analoghi
Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

Il linguaggio PHP. Elementi base

Programmazione web lato client con JavaScript. Marco Camurri 1

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

BASI LINGUAGGIO. Programmazione Web 1

Laboratorio - Programmazione

2011 Politecnico di Torino 1

Programmazione Web D B M G. Il linguaggio PHP

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

Dichiarazione di variabili

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Ing. Lorenzo Vismara

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP le istruzioni. Andrea Marchetti IIT-CNR 2013/2014

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

PHP ESSENTIALS #5. By WI400 Team. : stringhe

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Struttura di un linguaggio

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Laboratorio Progettazione Web Il linguaggio PHP Variabili e Istruzioni. Andrea Marchetti CNR/IIT AA 2016/2017

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Elementi di Informatica A. A. 2016/2017

Qualsiasi programma in C++ segue lo schema:

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Laboratorio Progettazione Web Il linguaggio PHP Variabili e Istruzioni. Andrea Marchetti CNR/IIT AA 2017/2018

Laboratorio di Informatica I

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Array. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore );

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Introduzione alla programmazione in C

BASI LINGUAGGIO. Programmazione Web 1

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Introduzione alla programmazione. Alice Pavarani

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Dati due punti sul piano calcolare la loro distanza

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

STRUTTURE DI CONTROLLO DEL C++

PROGRAMMA = ALGORITMO

L AMBIENTE CODE BLOCKS E L IO

Le basi del linguaggio Java

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

PHP Un introduzione. Dispense per il corso di Linguaggi e Traduttori 2003 Facoltà di Economia Università di Trento. Paolo Bouquet

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Elementi di Base. Introduzione a Python.

VBA Principali Comandi

Laboratorio Progettazione Web Il linguaggio PHP - Introduzione. Andrea Marchetti CNR/IIT AA 2015/2016

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Programmazione in Perl Introduzione

Assegnazione di una variabile

Lezione 6 Introduzione al C++ Mauro Piccolo

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Introduzione a JavaScript. Prof. Francesco Accarino IIS Altiero Spinelli via leopardi 132 Sesto San Giovani

Struttura di un programma C++

Corso di PHP. Prerequisiti. 2.1 Variabili. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

Primo programma in C

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione a Matlab

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO

L AMBIENTE CODE BLOCKS E L IO

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani

Programmazione Web. Javascript.

Corso di Laboratorio di Sistemi Operativi

Gli statement. Gli statement. Gli statement. Gli statement. Gli statement

PHP funzioni. Prof. Francesco Accarino

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

LABORATORIO DI INFORMATICA. Prof.ssa Patrizia Tarantino

Introduzione al MATLAB c Parte 3 Script e function

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Matematica con Python

Struttura dei programmi e Variabili

PHP ESSENTIALS #7. By WI400 Team. : array, sessioni

Fondamenti di Programmazione. Strutture di controllo

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

PHP PHP Hypertext Preprocessor

Linguaggio C Struttura dei programmi

Corso di PHP. Prerequisiti. 6.2 PHP e il web 2. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

VARIABILI, ASSEGNAZIONE, DECISIONI

PHP & MySQL. Giselda De Vita

Informatica B Esercitazione 1

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Esercitazione 00 Introduzione a Matlab

Fondamenti di Informatica A. A / 1 9

Laboratorio di Progettazione Web

PHP Introduzione (cont'd)

Caratteristiche generali del linguaggio Visual Basic

Transcript:

PHP ESSENTIALS #3 By WI400 Team : basi del linguaggio

Agenda Basi del linguaggio variabili Operatori Strutture di controllo

Tags PHP I documenti PHP sono pagine HTML con comandi PHP incorporati Quando il browser richiede il documento PHP, Il web server esegue i comandi PHP ed invia il loro risultato insieme all HTML contenuto nella pagina richiesta Come fa il web server a capire qual è il codice PHP da eseguire: 'Long 'Long Tags'; Tags';?>?> <? <? 'Short 'Short Tags'; Tags';?>?> <% <% 'ASP 'ASP Tags'; Tags'; %> %> <script <script language="php"> language="php"> 'Really 'Really Long Long Tags'; Tags'; </script> </script> Nota: ogni riga di php termina con il 3 ;

Hello World! Considerando il seguente documento PHP: <html> <html> <head> <head> <title>hello <title>hello World!</title> World!</title> </head> </head> <body> <body> "<h1> "<h1> Hello Hello World! World! </h1>"; </h1>";?>?> </body> </body> </html> </html> Il web server esegue le istruzioni PHP e le sostituisce con il suo output L istruzione produrrà come output la stringa <h1> Hello World! </h1> 4

Hello World! Il risultato finale che il web server invierà al browser del richiedente sarà il seguente: <html> <html> <head> <head> <title>hello <title>hello World!</title> World!</title> </head> </head> <body> <body> <h1> <h1> Hello Hello World! World! </h1> </h1> </body> </body> </html> </html> 5

Regole di sintassi Le regole da tenere sempre in mente sono le seguenti: Il PHP è delimitato dai tag di apertura e di chiusura...?> Le righe PHP terminano generalmente con il punto e virgola (;) E possibile (doveroso ) inserire commenti al codice PHP: facendo precedere il commento con il doppio slash: // utilizzando la combinazione /* e */ rispettivamente come apertura e chiusura del commento: /* /* ** Questo Questo èè un un commento commento stile stile CC */ */ // // Questo Questo èè un un commento commento // stile C++ // stile C++ ## Questo Questo èè un un commento commento ## stile Perl stile Perl 6

Configurazione base PHP 7 Il file php.ini Direttive principali di configurazione Language options Error handling Error logging Paths e directory Resource limits File uploads phpinfo()

Configurazione base: php.ini Il file php.ini è il file di configurazione con tutte le direttive di esecuzione del PHP Il file php.ini è un file di testo Il file è strutturato in sezioni Ciascuna sezione contiene una descrizione e tutte le direttive relative alla sezione stessa Ciascuna riga contiene una direttiva nella forma: direttiva=valore Le righe che iniziano con il ; rappresentano commenti e vengono quindi ignorate 8

Configurazione base: php.ini 9 Alcune delle direttive principali del file php.ini sono le seguenti: short_open_tag, asp_tags error_reporting, display_errors, display_startup_errors log_errors, error_log, log_errors_max_len include_path max_execution_time, memory_limit file_uploads, upload_tmp_dir, upload_max_filesize

Direttive principali: Language options 10 short_open_tag abilita/disabilita la possibilità di utilizzare gli short tag per l apertura e la chiusura del codice PHP (<? e?>). asp_tags abilita/disabilita la possibilità di utilizzare i tag in formato asp per l apertura e la chiusura del codice PHP (<% e %>).

Direttive principali: Error Handling 11 error_reporting definisce il livello degli errori da visualizzare (E_ALL E_STRICT per la visualizzare tutti gli errori). display_errors è la direttiva che definisce se visualizzare o meno gli errori (1 o 0). In fase di sviluppo dell applicazione dovrebbe essere impostato a 1 mentre in fase di produzione a 0. display_startup_errors è la direttiva che definisce se visualizzare o meno gli errori che si verificano durante l avvio del PHP (1 o 0). Dovrebbe avere la stessa configurazione della direttiva display_errors.

Direttive principali: Error Logging 12 log_errors è la direttiva che permette la scrittura dei messaggi di errore su file di log (On o Off). Dovrebbe essere sempre impostato ad On. error_log è la direttiva che definisce il file di log sul quale andare a scrivere i messaggi di errore. log_errors_max_len è la direttiva che definisce la lunghezza massima del file di log in bytes.

Direttive principali: Paths e directory include_path è la direttiva che specifica le directory dove il PHP deve cercare i file quando vengono richiamate funzioni come include, include_once, require, require_once e file_get_contents (tratteremo più avanti...). Il carattere che separa una directory dall altra varia in base al sistema operativo sul quale è installato il PHP: Per sistemi UNIX si utilizza i :.:/php/includes Per sistemi Windows si utilizza il ;.;c:\php\includes 13

Direttive principali: Resource limits 14 max_execution_time è la direttiva che definisce il numero massimo di secondi che possono essere impiegati da uno script PHP per la sua esecuzione. memory_limit è la direttiva che definisce la quantità massima di memoria (espressa in MB) che uno script PHP può utilizzare durante la sua esecuzione.

Direttive principali: File uploads file_uploads abilita o disabilita la possibilità di eseguire upload di file da form HTML upload_tmp_dir contiene la directory per il salvataggio temporaneo dei file derivanti da form HTML upload_max_filesize definisce le dimensioni massime dei file che possono essere caricati tramite form HTML 15

phpinfo() E una funzione nativa del PHP Visualizza tutte le informazioni riguardanti il PHP installato (opzioni di compilazione, estensioni, versione del PHP, informazioni del sistema operativo del server, ecc.) <html> <html> <head> <head> <title>phpinfo()</title> <title>phpinfo()</title> </head> </head> <body> <body> phpinfo(); phpinfo();?>?> </body> </body> </html> </html> 16

phpinfo(): risultato 17 Questa è il risultato della funzione phpinfo():

Basi del linguaggio Introduzione Struttura lessicale Case sensitivity Statements e separatore di istruzioni Spazi bianchi e interruzioni di linea Commenti Tipi di dati Variabili Operatori Strutture di controllo 18

Basi del linguaggio: introduzione 19 Come tutti gli altri linguaggi di programmazione anche il PHP ha delle regole di base da seguire Il PHP è influenzato molto da altri linguaggi come Perl e C e le sue regole di base assomigliano molto a questi due linguaggi

Basi del linguaggio: struttura lessicale 20 La struttura lessicale è l insieme di regole che definiscono come deve essere scritto un programma E sintassi vera e propria del linguaggio Riguarda informazioni come nomi delle variabili, commenti al codice e come le istruzioni sono separate una dall altra

Struttura lessicale: case sensitivity Le variabili PHP sono case-sensitive $variabile e $VARIABILE sono due variabili diverse $variabile $variabile ee $VARIABILE $VARIABILE 21 I nomi delle classi e delle funzioni definite dall utente, così come costrutti e parole chiavi del linguaggio sono case-insensitive: ed ECHO produrranno lo stesso risultato

Struttura lessicale: statements e separatore di istruzioni Uno statement è una raccolta di codice PHP Può essere semplice come assegnare un valore ad una variabile $linguaggio $linguaggio == 'PHP'; 'PHP'; Può essere complesso come una struttura di controllo if if ($linguaggio ($linguaggio == == PHP) PHP) {{ 'wi400'; 'wi400'; }} Il PHP utilizza il carattere ; per separare istruzioni semplici Uno statement complesso non ha bisogno del ; dopo le parentesi graffe che racchiudono il codice dello statement Il ; è opzionale (anche se consigliata) per l istruzione immediatamente precedente il tag di chiusura del PHP 22

Struttura lessicale: spazi bianchi e interruzioni di linea Generalmente gli spazi bianchi e le interruzioni di linea non cambiano il comportamento del codice E' possibile scrivere aggiungendo spazi nome_funzione nome_funzione (( $param1, $param1, $param2, $param2, $param3 $param3 ); ); E' possibile scrivere eliminando gli spazi nome_funzione($param1,$param2,$param3); nome_funzione($param1,$param2,$param3); E' possibile scrivere su più linee: nome_funzione( nome_funzione( $param1, $param1, $param2, $param2, $param3 $param3 ); ); 23

Tipi di dati Il PHP mette a disposizione 8 tipi di dati di cui 4 scalari, 2 composti e 2 tipi speciali I dati scalari sono: integers numeri floating point strings booleans I dati composti sono: arrays Objects I dati speciali sono: resource null 24

Variabili Uso delle variabili Tipi di dati Visibilità delle variabili Array superglobal Variabili di variabili Costanti

Variabili: uso delle variabili Le variabili sono contenitori di informazioni (dati) Possono contenere tutti i tipi di dati messi a disposizione dal PHP Le variabili PHP sono identificate dal simbolo del dollaro: $variabile dov'è l'errore? I nomi delle variabili possono contenere caratteri alfabetici, numeri e underscore ma non possono iniziare con numeri E possibile assegnare una stringa ad una variabile attraverso l operatore di assegnazione = $myvar $myvar == ciao ; ciao ; $myvar; $myvar; $1myvar $1myvar == pippo ; pippo ; E possibile visualizzare il contenuto di una variabile attraverso il costrutto : $variabile; 26

Struttura lessicale: l'output l'apice 'singolo' e l'apice doppio il PHP tenta di risolvere le variabili all'interno dei doppi apici ( ), mentre quelle tra apici singoli (') vengono lasciate inalterate print "Il valore di a è $a"; print ('Con $a si indica una variabile'); 27

Variabili: tipi di dati PHP è un linguaggio loosely-typed. Questo significa che non è necessario definire il tipo di dato che una variabile può contenere PHP prova a fare quello che tu vorresti che facesse $x $x == 5; 5; // // Questa Questa variabile variabile contiene contiene un un intero intero $y $y == '3'; '3'; // // Questa Questa variabile variabile contiene contiene una una stringa stringa $z = $x + $y; // Eseguo la somma di un intero $z = $x + $y; // Eseguo la somma di un intero ee di di una una stringa stringa "$x + $y = $z"; // Visualizzo il risultato della somma "$x + $y = $z"; // Visualizzo il risultato della somma 55 ++ 33 == 88 28

Variabili: visibilità 29 l'ambito di visibilità (scope) di una variabile è il contesto (parte dello script) in cui è possibile accedere al suo contenuto per lo scope ci sono due categorie di variabili: - globali, valide nella parte più esterna degli script - locali, valide all'interno di funzioni o classi le variabili sono visibili nella parte esterna dello script, ma non all'interno di funzioni o classi (a meno di non dichiararle con global)

Variabili: array superglobali PHP ha alcune speciali variabili chiamate superglobal array vengono utilizzate, ad esempio, per il reperimento dei dati di POST o GET da una form HTML, o per i dati di sessione o cookies. - $_GET - $_POST - $_COOKIES 30

Variabili: speciali Degli esempi: Variabili del Server $_SERVER["PHP_SELF"] Il percorso dello script (da document root) $_SERVER["QUERY_STRING"] $_SERVER["REQUEST_URI"] $_SERVER["SERVER_NAME"] $_SERVER["SERVER_PORT"] Query string della URI richiesta Variabili di Ambiente $_ENV["PWD"] $_ENV["PATH"] $_ENV["USERNAME ] $_ENV["HOME"] Variabili di GET/POST $HTTP_POST_FILES[<file>] Variabili Cookies $HTTP_COOKIE_VARS[<cookie>] Variabili di Sessione $_SESSION[<var>] 31 Descrizione URI richiesta del client Nome del server Port number del server Descrizione Directory corrente Percorsi per la ricerca di eseguibili e librerie Nome dell'utente Home directory dell'utente Descrizione Matrice di attributi del <file> di upload Descrizione Array associativo delle coppie <cookie> = valore Descrizione Array associativo delle coppie <var> = valore

Variabili: controllo esiste la possibilità di controllare se una variabile è assegnata o meno (se è stata inizializzata) con la fuzione isset(). $a $a == 1; 1; if ((isset if ((isset ($a))) ($a))) {{ "a "a e' e' assegnata"; assegnata"; }} "<br>"; "<br>"; if if (( (! (! isset isset (( $b $b ))) ))) {{ print print "b "b non non e' e' assegnata"; assegnata"; }} 32 aa e' e' assegnata assegnata bb non non e' e' assegnata assegnata

Variabili: variabili di variabili in PHP è possibile utilizzare la variabile di variabile. è bene però ricordare che questa cosa va evitata se possibile, in quanto rende il codice di difficile interpretazione. $varname $varname == 'myvar'; 'myvar'; $myvar = 'Hello, $myvar = 'Hello, World!'; World!'; $$varname; $$varname; $$++myvar myvar 33 Hello, Hello,World! World!

Variabili: costanti in PHP è possibile definire variabili COSTANTI non sono variabili a tutti gli effetti, ma sono contenitori di dati, non iniziano con il $ ed è prassi comune definirle sempre in MAIUSCOLO. la principale differenza è che il valore di una costante non cambia mai non si può sovrascrivere il valore di una costante neanche ridefinendola. define('name','ciao'); define('name','ciao'); define('name','sovrascrivo'); define('name','sovrascrivo'); NAME; NAME; 34 ciao ciao

Operatori Precedenza Operatori Aritmetici Assegnazione Comparazione Logici Stringhe Altri

Operatori: Precedenza degli operatori la precedenza di un operatore determina quale operazione viene eseguita per prima ecco perchè il risultato dell'espressione 1 + 2 * 3 è 7 e non 9 (la moltiplicazione ha la precedenza sull'addizione) l'utilizzo delle parentesi guida il calcolo delle espressioni: (1 + 2) * 3 dà come risultato 9. 36

Operatori: Aritmetici 37 negazione -$a somma $a + $b sottrazione $a - $b moltiplicazione $a * $b divisione $a / $b modulo $a % $b

Operatori: Assegnazione di base: $a = $b combinata: $a += $b l'assegnazione combinata funziona con tutti gli operatori aritmetici $a $a == 3; 3; $b $b == 5; 5; $a $a += += $b; $b; 38 88

Operatori: Comparazione 39 equal: $a == $b identical: $a === $b not equal: $a!= $b o $a <> $b not identical: $a!== $b less than: $a < $b greater than: $a > $b less than or equal to: $a <= $b greater than or equal to: $a >= $b

Operatori: Logici and: $a && $b or: $a $b not:!$a xor: $a xor $b Operatore Esempio!$a not $a && $b ($a and $b ) and $a $b ($a or $b ) or $a xor $b xor 40 Vero se $a è falsa $a e $b sono entrambe vere almeno una tra $a e $b è vera solo una tra $a e $b è vera

Operatori: Logici Ricorda: 0 = false 1 = true $a=0; $a=0; if(!$a) if(!$a) {{ "hello "hello world"; world"; }} 41 Hello Helloworld world

Operatori: Stringhe concatenazione: $a. $b Concatenazione e assegnazione: $a.= $b $a $a == "hello "hello "; "; $b = "world"; $b = "world"; $a $a.. $b; $b; "<br>"; "<br>"; $a.= $a.= $b; $b; $a; $a; 42 Hello Helloworld world Hello world Hello world

Operatori: Altri pre-incremento: ++$a post-incremento: $a++ pre-decremento: --$a post-decremento: $a-- 43 soppressione degli errori: @myfunction() (attenzione all'uso...)

Strutture di controllo if switch cicli while cicli do-while cicli for cicli foreach

Strutture di controllo 45 il codice procedurale viene eseguito, in genere, dall'alto al basso le specifiche condizionali (conditional statement) consentono di prendere delle decisioni e alterarne il flusso. in questo modo è possibile creare delle parti di codice che verranno eseguite solo quando viene verificata una particolare condizione. tutte le condizioni verificheranno un risultato true o false.

Strutture di controllo: if espressione booleana $a = FALSE; $b = TRUE; if ($a and $b) print ("a e b sono vere"); espressione di confronto $a $b if if = " 04"; = "0003"; ($a>$b) print("a è maggiore di b"); (strcmp($a,$b)) print("a è più grande di b"); espressione condizionale (ternary operator) // Un numero e' pari se, diviso per due, non da' resto "\$n è ".( $n % 2 == O? "pari" : "dispari" ); 46

Strutture di controllo: if if-elseif-else $hungry $hungry == true; true; $thirsty = $thirsty = true; true; if if ($hungry ($hungry && && $thirsty) $thirsty) {{ 'Eat 'Eat and and Drink'; Drink'; }} elseif ($hungry) elseif ($hungry) {{ 'Eat'; 'Eat'; }} elseif ($thirsty) elseif ($thirsty) {{ 'Drink'; 'Drink'; }} else { else { 'Do 'Do Nothing'; Nothing'; }} 47 Eat Eatand anddrink Drink

Strutture di controllo: if if-elseif-else $hungry $hungry == true; true; $thirsty = $thirsty = false; false; if if ($hungry ($hungry && && $thirsty) $thirsty) {{ 'Eat 'Eat and and Drink'; Drink'; }} elseif ($hungry) elseif ($hungry) {{ 'Eat'; 'Eat'; }} elseif ($thirsty) elseif ($thirsty) {{ 'Drink'; 'Drink'; }} else { else { 'Do 'Do Nothing'; Nothing'; }} 48 Eat Eat

Strutture di controllo: if if-elseif-else $hungry $hungry == false; false; $thirsty = $thirsty = true; true; if if ($hungry ($hungry && && $thirsty) $thirsty) {{ 'Eat 'Eat and and Drink'; Drink'; }} elseif ($hungry) elseif ($hungry) {{ 'Eat'; 'Eat'; }} elseif ($thirsty) elseif ($thirsty) {{ 'Drink'; 'Drink'; }} else { else { 'Do 'Do Nothing'; Nothing'; }} 49 Drink Drink

Strutture di controllo: if if-elseif-else $hungry $hungry == false; false; $thirsty = $thirsty = false; false; if if ($hungry ($hungry && && $thirsty) $thirsty) {{ 'Eat 'Eat and and Drink'; Drink'; }} elseif ($hungry) elseif ($hungry) {{ 'Eat'; 'Eat'; }} elseif ($thirsty) elseif ($thirsty) {{ 'Drink'; 'Drink'; }} else { else { 'Do 'Do Nothing'; Nothing'; }} 50 Do DoNothing Nothing

Esercizio 1 51 Crea uno script che memorizzi il tuo nome in una variabile e lo visualizza (in output) Ricordare i tag PHP Ricordare di utilizzare l estensione.php per il file Estendere lo script per memorizzare l età così come avete fatto per il nome. Lo script deve visualizzare due messaggi diversi a seconda se l età è maggiore o minore di 17.

Esercizio 1: Solution Una delle molte soluzioni al problema precedente potrebbe essere la seguente: $name $name == "Mario "Mario Rossi"; Rossi"; $age = 50; $age = 50; if if ($age ($age >> 17) 17) {{ "Ciao "Ciao $name $name hai hai già già preso preso la la patente patente di di guida?"; guida?"; }} else else {{ "Ciao "Ciao $name $name ricordati ricordati di di iscriverti iscriverti alla alla scuola scuola guida guida quando sarai maggiorenne"; quando sarai maggiorenne"; }} 52

Strutture di controllo: Switch 53 quando l'esecuzione di un blocco di istruzioni piuttosto che un altro dipende da una espressione, è conveniente usare lo switch all'uso dello switch va abbinato l'utilizzo del break, che consente l'immediata uscita dal blocco di istruzioni può essere indicato un blocco di default quando tutti gli altri non si applicano.

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 54

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 55

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 56

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 57

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 58

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 59

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 60

Strutture di controllo: Switch switch switch (( $color) $color) {{ case case 'red' 'red' :: 'The 'The color color is is red.'; red.'; case case 'blue' 'blue' :: 'The 'The color color is is blue.'; blue.'; default default :: 'The 'The color color is is not not red red or or blue.'; blue.'; }} 61

Esercizio 2: 62 Crea uno script che memorizzi il tuo nome in una variabile e lo visualizzi in output ricordare i tag PHP ricordare di utilizzare l estensione.php per il file Estendere lo script per memorizzare l età così come avete fatto per il nome. Lo script deve visualizzare due messaggi diversi a seconda se l età è maggiore o minore di 17. Utilizzare il costrutto switch per il secondo punto dell esercizio

Esercizio 2: Solution La soluzione al problema della slide precedente potrebbe essere il seguente: $name $name == "Marco "Marco Rossi"; Rossi"; $age = 50; $age = 50; switch($age switch($age >> 17) 17) {{ case case true: true: "Ciao "Ciao $name $name hai hai già già preso preso la la patente patente di di guida?"; guida?"; case case false: false: "Ciao "Ciao $name $name ricordati ricordati di di iscriverti iscriverti alla alla scuola scuola guida guida quando sarai maggiorenne"; quando sarai maggiorenne"; }} 63

Strutture di controllo: Cicli While I cicli while sono il modo più semplice di eseguire più volte la stessa parte di codice. while (espressione) { blocco-istruzioni; } Se l espressione di controllo è vera viene eseguito lo statement e viene rieseguito il controllo (fino a quando l espressione è verificata) La condizione viene controllata prima che il codice venga eseguito $i $i == 0; 0; while while (( $i $i << 10 10 )) {{ $i; $i; $i ++; $i ++; }} 64

Strutture di controllo: Cicli Do-While I cicli do-while sono identici ai cicli while ad eccezione del fatto che l espressione di controllo viene valutata soltanto dopo che il codice è stato eseguito do statement while (espressione) Questo garantisce che il codice viene eseguito almeno una volta $i $i == 0; 0; do do {{ $i; $i; $i ++; $i ++; }} while while (( $i $i << 10 10 ); ); 65

Strutture di controllo: Cicli For I cicli for sono molto simili ai cicli while Si differenziano dai cicli while in quanto aggiungono l inizializzazione e l espressione di manipolazione del contatore for (inizializzazione; espressione; incremento) statement for($i for($i == 0; 0; $i $i << 10; 10; $i $i ++) ++) {{ $i; $i; }} 66

Strutture di controllo: Cicli For Il for() loops è indicato nei casi in cui si vuole incrementare un contatore all'interno del loop, e quando, solitamente, si conosce il numero di iterazioni da effettuare for (inizio;condiz;contatore) { blocco-istruzioni; } // I quadrati dei primi n // numeri interi $n = 5; for ($i=1; $i<=$n; $i++) { "Il quadrato di $i e' ".($i*$i).".<br>"; } 67 Il Il quadrato quadrato di di 11 e' e' 1. 1. Il quadrato di 2 e' 4. Il quadrato di 2 e' 4. Il Il quadrato quadrato di di 33 e' e' 9. 9. Il quadrato di 4 e' 16. Il quadrato di 4 e' 16. Il Il quadrato quadrato di di 55 e' e' 25. 25.

Strutture di controllo: Cicli Foreach I cicli foreach sono utili soprattutto per scorrere gli elementi di un array Gli array saranno affrontati successivamente Esistono due tipi di sintassi per il costrutto foreach per recuperare soltanto i valori di un array per recuperare chiavi e valori di un array foreach foreach (( $_POST $_POST as as $valore $valore )) {{ "<p>il "<p>il valore valore èè $valore</p>"; $valore</p>"; }} foreach foreach (( $_POST $_POST as as $chiave $chiave => => $valore $valore )) {{ <p>la <p>la chiave chiave èè $chiave $chiave ee il il valore valore èè $valore</p>"; $valore</p>"; }} 68

Strutture di controllo: Cicli Foreach esempio: $arr $arr == array("one", array("one", "two", "two", "three"); "three"); foreach foreach ($arr ($arr as as $value) $value) {{ "Valore: "Valore: $value<br>"; $value<br>"; }} <br> ; <br> ; foreach foreach ($arr ($arr as as $key $key => => $value) $value) {{ "Chiave: "Chiave: $key; $key; Valore: Valore: $value<br>\n"; $value<br>\n"; }} Valore: Valore: one one Valore: two Valore: two Valore: Valore: three three Chiave: Chiave: 0; 0; Valore: Valore: one one Chiave: 1; Valore: two Chiave: 1; Valore: two Chiave: Chiave: 2; 2; Valore: Valore: three three 69

Esercizio 3: 70 Crea uno script che memorizzi tre variabili: $affamato, $mele, $pesche $affamato = 10; $mele = 4; $pesche = 5; Fino a quando $affamato non è 0 mangiare una mela o una pesca. Mangiando una mela diminuisce $affamato di 1 mentre mangiando una pesca diminuisce $affamato di 2 Si dovrebbe mangiare il frutto del quale si ha più disponibilità. Non preoccupatevi di rimanere a corto di cibo

Esercizio 3: Solution $affamato $affamato == 10; 10; $mele = 4; $mele = 4; $pesche $pesche == 5; 5; while while (( $affamato $affamato >> 00 )) {{ if if ($mele ($mele >> $pesche) $pesche) {{ $mele $mele --; --; "Ho "Ho mangiato mangiato una una mela<br>"; mela<br>"; }} else { else { $pesche $pesche --; --; $affamato $affamato --; --; "Ho "Ho mangiato mangiato una una pesca<br>"; pesca<br>"; }} $affamato $affamato --; --; "Ho "Ho ancora ancora $affamato $affamato fame<br>"; fame<br>"; }} 71

QUESTION TIME? Nome Nome Cognome Cognome Data Data

ARRIVEDERCI

TITOLO 74