corso php enaip - lezione #03 - 24/01/2014
TRANSCRIPT
SITI WEB DINAMICICON PHP
lezione #03 – 24/01/2014Matteo Moro - www.MatteoMoro.net
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
STRUTTURE DI CONTROLLO
SERVONO A DECIDERE: quante volte eseguire un blocco di codice se eseguire un blocco di codice
STRUTTURE PRINCIPALI: if... then... else... switch... case... for... / foreach... while... do... / do... while... goto... (un brutto ricordo!)
RIFERIMENTI:http://www.php.net/manual/en/language.controlstructures.php
312
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
IF... THEN... ELSE...
C = CONDIZIONE = espressione che restituisce un valore di tipo BOOLEAN
if (C) { /* CODICE */ }else { /* CODICE */ }
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.if.php http://www.php.net/manual/en/controlstructures.else.php http://www.php.net/manual/en/controlstructures.elseif.php http://www.php.net/manual/en/controlstructures.alternativesyntax.php
313
Cvero falso
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
SWITCH... CASE... #1
314
EXP==V1v f
EXP==V2v f
EXP==V3v f
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
SWITCH... CASE... #2
diverse condizioni sul valore della stessa espressione
switch (EXP) { case V1: /* CODICE */ break; case V2: /* CODICE */ break; case V3: /* CODICE */ break; default: /* CODICE */ break; }
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.switch.php
315
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FOR... #1
316
EXP2
EXP1
v f
EXP3
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FOR... #2
ripetere l'esecuzione di un blocco di codice per un certo numero di volte (ciclo infinito?)
si basa su tre espressioni, che vengono calcolate o valutate per decidere se ripetere o uscire dal blocco
for (EXP1;EXP2;EXP3) { /* CODICE */ }
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.for.php
317
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FOREACH...
particolare ciclo “for...” per iterare sui valori di un array
ottenere anche il valore della chiave
foreach ($array as $val) { /* CODICE */ }
foreach ($array as $key => $val) { /* CODICE */ }
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.foreach.php
318
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
WHILE... DO... #1
319
EXPv f
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
WHILE... DO... #2
3110
ripetere l'esecuzione di un blocco di codice fino a quando un'espressione rimane vera
ciclo infinito?
while (EXP) { /* CODICE */ }
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.while.php
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DO... WHILE...
3111
EXPv f
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DO... WHILE...
3112
come “while... do...”, ma l'espressione viene valutata dopo l'esecuzione del blocco di codice: il blocco di codice viene eseguito almeno una volta. Ciclo infinito?
do { /* CODICE */ }while (EXP);
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.while.php
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
GOTO :-(
saltare a un punto contrassegnato del codice
un brutto ricordo del passato
goto a;echo(“UNO”);a:echo(“DUE”);
RIFERIMENTI:http://www.php.net/manual/en/controlstructures.goto.php
3113
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DOMANDE?
3114
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FUNZIONI #1
strutture che permettono di raggruppare parti di codice e di eseguirle nel corso del programma
possono accettare parametri possono restituire un valore
function miafunzione($p1,$p2,...) { /* CODICE */ return EXP; }
RIFERIMENTI:http://www.php.net/manual/en/functions.internal.php http://www.php.net/manual/en/functions.userdefined.php http://www.php.net/manual/en/functions.returningvalues.php
3115
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FUNZIONI #2
devono essere definite prima di essere usate
funzioni interne (builtin) sempre global→
funzioni definite dall'utente (occhio ai nomi!)
valore restituito (default=NULL)
sottofunzioni
3116
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DOMANDE?
3117
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FUNZIONI PER LE STRINGHE
str_replace() strpos() strlen() strtoupper() e strtolower() substr()
RIFERIMENTI:http://www.php.net/manual/en/ref.strings.php
3118
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
SOSTITUISCI TESTO
str_replace($find,$replace,$subject);
sostituisce $find con $replace all'interno di $subject e restituisce la stringa modificata
ricerca casesensitive
RIFERIMENTI:http://www.php.net/manual/en/function.strreplace.php
3119
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
TROVA TESTO
strpos($testo,$trova);
cerca $trova in $testo, restituisce la posizione della prima occorrenza
se non trova nulla, restituisce FALSE
ricerca casesensitive partendo da sinistra
RIFERIMENTI:http://www.php.net/manual/en/function.strpos.php
3120
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
LUNGHEZZA DI UNA STRINGA
strlen($stringa);
restituisce la lunghezza di $stringa
RIFERIMENTI:http://www.php.net/manual/en/function.strlen.php
3121
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
MAIUSCOLE E MINUSCOLE
strtoupper($stringa);strtolower($stringa);
converte i caratteri alfanumerici in maiuscolo (o minuscolo), restituisce la stringa modificata
RIFERIMENTI:http://www.php.net/manual/en/function.strtoupper.php http://www.php.net/manual/en/function.strtolower.php
3122
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
ESTRAI PARTE DI UNA STRINGA
substr($stringa,$inizio,$lunghezza);
estrae una parte di $stringa, partendo dalla posizione $inizio e per un numero di caratteri pari a $lunghezza. Restituisce la parte di stringa estratta.
$inizio>strlen($stringa) FALSE→ $inizio+$lunghezza>strlen($stringa) PARTE→
RIFERIMENTI:http://www.php.net/manual/en/function.substr.php
3123
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DOMANDE?
3124
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
FUNZIONI PER GLI ARRAY
sizeof() array_keys() sort() array_search()
RIFERIMENTI:http://www.php.net/manual/en/book.array.php
3125
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DIMENSIONE DI UN ARRAY
count($array);
conta gli elementi di un array, restituisce il numero di elementi
RIFERIMENTI:http://www.php.net/manual/en/function.count.php
3126
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
CHIAVI DI UN ARRAY
array_keys($array);
estrae le chiavi di un array, restituisce un array a chiave numerica contenente le chiavi trovate
RIFERIMENTI:http://www.php.net/manual/en/function.arraykeys.php
3127
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
ORDINAMENTO DI UN ARRAY
sort($array);
riordina gli elementi di $array, modificando l'array passato come parametro. Restituisce TRUE o FALSE a seconda che l'operazione abbia avuto o meno successo
RIFERIMENTI:http://www.php.net/manual/en/function.sort.php
3128
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
RICERCA IN UN ARRAY
array_search($trova,$array);
cerca il valore $trova in $array. Se lo trova, restituisce la chiave del primo risultato, altrimenti restituisce FALSE
RIFERIMENTI:http://www.php.net/manual/en/function.arraysearch.php
3129
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
DOMANDE?
3130
lezione #03 – 24/01/2014
Matteo Moro - www.MatteoMoro.netsiti web dinamici con php
ALLA PROSSIMA LEZIONE!
3131
28gen