Stefan Ghinea.it | English versionEnglish version | e-mail

  • Cerca nel sito
   myway con Google:
   
   Web Ghinea.it
   
  • Socialnetwork
Web Agency Prato:
Creazione Siti, Indicizzazione, Ottimizzazione
 
  facebook  twitter  youtube 
 
  • ContattamiSkype
Web Agency Prato:
richiesta informazioni
 
My status
Contattami

Lezioni di programmazione PHP – Cicli

Come in ogni linguaggio di programmazione anche PHP possiede i cicli, ossia delle istruzioni che ciclicamente possono modificare o interagire con i dati. Se conoscete altri linguaggi noterete poche differenze. Vediamo come si chiamano e cosa possono fare.

IF ELSE
Vedi anche l’operatore di confronto ?:
Il ciclo IF (in italiano SE) pone una scelta, ossia ‘se vero’ esegui in un modo oppure ‘se falso’ esegui in un altro modo. I cicli IF si possono annidare fra loro, ossia un ciclo IF ne può contenere un altro.
Esempio:
if ($a==$b){
print “uguali”;
}
else{
print “diversi”;
}
Le parentesi graffe si usano per raggruppare più informazioni, quindi se ci sono più azioni da fare in una delle ipotesi mettiamo le graffe, se c’è solo un’azione le possiamo anche omettere. La clausola Else { } è facoltativa, va usata nel caso ci sia un’alternativa se il ciclo if non soddisfa quello indicato fra le parentesi.

Vediamo in quali ‘strani’ casi if considera falso un ciclo:
* Quando una variabile raggiunge il valore zero.
* Quando una stringa risulta vuota.
* Quando un Array non ha elementi.
* Quando una variabile non è stata definita, è stata cancellata, ha valore ‘null’.

ELSEIF
PHP ci fornisce un’altra istruzione per il ciclo IF, ossia l’istruzione ELSEIF.
Esempio:

if ($a==$b){
print “uguali”;
}
elseif ($a==$c){
print “uguale a c”;
}
elseif ($a==$d){
print “uguale a d”;
}


else{
print “diversi”;
}

In sostanza è come un altro ciclo IF all’interno di un ciclo if. Il server controlla se il primo ciclo (IF) è vero, se è falso va sul ciclo elseif, se è falso pure questo continua con i cicli ELSEIF fino a quando non trova un’alternativa vera oppure l’istruzione finale ELSE (non obbligatoria).

FOR
Il ciclo for esegue un ciclo di informazioni fino a quando la condizione iniziale non diviene falsa. La sintassi è la seguente:
for (espressione iniziale; condizione; aggiornamento){
….operazioni….
}
Esempio:

for ($a=0; $a<=3; $a++){
print "ciao $a
“;
}

Ottiene come risultato:
ciao 0
ciao 1
ciao 2
ciao 3

Un’alternativa potrebbe essere:

for ($a=0; $a<=3;){
print "ciao $a
“;
$ a++;
}

Importante
Se la variabile non raggiunge la condizione inserita dentro il ciclo si crea un loop.

FOREACH
Il ciclo foreach esegue un ciclo su valori contenuti in un array. La sintassi è la seguente:
foreach ($nomearry as $chiave => $valore) {
…istruzioni…
}
Per ulteriori approfondimenti vi rimandiamo alla pagina degli array.

WHILE
Il ciclo while dura fino a quando la condizione è vera. Per far questo dobbiamo necessariamente far variare la condizione all’interno del ciclo.
Esempio:

$a = 0;
while($a<=3){
print "ciao $a
“;
$a++;
}

In questo caso il ciclo while continua fino a quando $a non raggiunge il valore 3.

DO WHILE
Il ciclo DO WHILE è molto simile al ciclo WHILE. La differenza sostanziale è che il ciclo WHILE può non essere eseguito, questo se la condizione risulta falsa fin dall’inizio. Il ciclo DO WHILE si esegue sempre, almeno per una volta. Questo perché il ciclo DO WHILE inserisce prima le azioni da fare e dopo la condizione. Il server esegue le prime istruzioni, poi legge la condizione e se è sempre vera riesegue le istruzioni.
Esempio:
do {
…azioni…
}
while(condizione)

SWITCH
L’istruzione switch non è un vero e proprio ciclo. Switch viene usato quando abbiamo più alternative da vagliare e non vogliamo inserire più cicli if annidati fra loro.
Supponiamo per esempio di inserire una variabile e di dover agire in maniera diversa se questa variabile corrisponde a due valori. Con l’istruzione if dovremo scrivere due cicli annidati, con switch ne basta uno. Questo è il codice:

switch ($a) {
case ‘ciao’:
print “ci vediamo presto”;
break;
case ‘addio’:
print “non torni più?”;
break;
default:
print “forse tornerai”;
}

Dove DEFAULT raccoglie tutte le altre opzioni (come ELSE nel ciclo IF), ma non è obbligatorio.

Altra soluzione ciclo SWITCH

switch ($a) {
case ‘ciao’:
case ‘ciaociao’:
case ‘ciaociaociao’:
print “ci vediamo presto”;
break;
case ‘addio’:
print “non torni più?”;
break;
default:
print “forse tornerai”;
}

In questo caso abbiamo associato tre valori per l’istruzione print “ci vediamo presto”; Questo perché fino a quando non trova break il server continua ad eseguire le istruzioni.

CONTINUE
CONTINUE interrompe il ciclo ma non esce, infatti ritorna al suo inizio e continua il suo lavoro. Non azzera però il valore delle variabili, si può usare se uno o più valori non devono influire.
Esempio:

for ($a=1; $a<=4; $a++){
if ($a==3)
continue;
else
print "ciao $a
“;
}

In questo caso otteniamo:
ciao 1
ciao 2
ciao 4

break
Al contrario di CONTINUE, che in pratica fa saltare un giro al ciclo, il comando BREAK interrompe il ciclo e riprende dalla prima riga sotto il ciclo.

loop
Il loop non è un ciclo, è l’errore generato da un ciclo infinito. La causa del loop è una variabile che non raggiunge mai il valore che interrompe il ciclo. Nel caso di PHP non si crea la pagina da visualizzare, o nel caso peggiore blocca il pc utente, mentre il server passati 30 secondi termina automaticamente l’esecuzione del codice.

   16/08/2010 08:15:24 am
  • No Related Post
No Comments »

    Lascia un commento

Spam protection by WP Captcha-Free

  • I bannerGhinea.it
minibanner1
minibanner2
minibanner3
minibanner4
  • Sidebar
  • Categories:
  • Abbiamo lanciato a gennaio 2012 un nuovo sito WordPress: tmptecnorestauri.it
    Abbiamo lanciato alla fine di novembre 2011 un nuovo sito WordPress: infortunisticabologna.net
    Un sito amatoriale: www.sorrisodiluna.too.it
    Giochi online: www.mostfun.com
    Sempre classico: www.gianlucabianchi.it
    I siti web della settimana
    WordPress inarrestabile
    La PEC… vola
    Google nemico della memoria?
    Anonymous: nemici pubblici numero uno







    Stefan Ghinea - Consulenze informatiche e soluzioni software
    Via Marchini, 26 - 59100 Prato (PO) - Tel.: 340 2123560; Fax: 0574 027820  E-mail Home page
    © 2010 by GhineaWebSolutions.it