CONTATTACI

Guide per aspiranti programmatori

Lezione 7 / 26

Sequenza, selezione e iterazione in PHP

Giunto a questo punto sarai sicuramente già molto entusiasta delle nozioni imparate, e non vedrai l’ora di fare sul serio!
Che ne dici? Proseguiamo?
Vediamo, in questa guida, che cosa sono le cosiddette strutture di controllo: sequenza, selezione e iterazione.

A venire in nostro aiuto per introdurle, è il famosissimo Teorema di Böhm-Jacopini (Corrado Böhm e Giuseppe Jacopini).
Il Teorema di Böhm-Jacopini, infatti,  afferma che qualunque algoritmo può essere implementato in fase di programmazione utilizzando tre sole strutture, dette strutture di controllo: 

  • la sequenza
  • la selezione 
  • l’ iterazione (o ciclo)

da applicare ricorsivamente alla composizione di istruzioni elementari.

Analizziamo, ora, le strutture di controllo una per volta.

SEQUENZA IN PHP

Abbiamo, nel nostro codice, questa situazione:

<?php
  $num1=2;
  $num2=5;
  echo $num1+$num2;
?>

Da cui risulterá:

La sequenza parte dall’alto verso il basso ed esegue gli statement (istruzioni) uno alla volta.
In pratica:

  • il primo step assegna il valore 2 alla variabile $num1
  • il secondo step assegna il valore 5 alla variabile $num2
  • il terzo step vede il comando echo e mostra la somma delle due variabili

Come puoi notare dalla descrizione appena fatta, tutto avviene in sequenza, dall’alto verso il basso.

 

SELEZIONE (condizione) IN PHP

Nella selezione, al verificarsi di una condizione (interna ad un’istruzione) verranno eseguite delle righe di codice.
Le istruzioni possono essere:

  • if 
  • else
  • elseif
  • switch

IF PHP

Quando incontra l’istruzione IF, il programma esegue il codice presente all’interno del suo corpo solo se la condizione è verificata. 

<?php
  $is_student = true;
  if($is_student == true){
    echo "Si sei uno studente!";
  }
?>

Da cui risulterá:

Per sequenza verrá assegnato il valore true alla variabile $is_student, successivamente verrá incontrata l’istruzione if con la condizione al suo interno vera, e, quindi, il codice verrá eseguito.
Vediamo lo stesso esempio scritto, però, in modo un pochino diverso:

<?php
  $is_student = true;
  if($is_student){
    echo "Si sei uno studente!";
  }
?>

Ne risulterá ugualmente:

Ti chiedi il perché? Questo avviene perché la variabile $is_student é un valore truthy, quindi possiamo omettere il controllo che sia == true.

PHP IF/ELSE

Con questo tipo di istruzioni Il programma eseguirà il codice nel corpo dell’if solo se la condizione nelle parentesi è verificata. Altrimenti, eseguirá il codice presente nel corpo dell’else.

<?php
  $is_student = true;
  if($is_student == true){
    echo "Si sei uno studente!";
  }else{
    echo "Non sei uno studente!";
  }
?>

Da cui risulterá:

Per sequenza, verrà assegnato il valore false alla variabile $is_student, poi verrà incontrata l’istruzione if con la condizione al suo interno che però risulterà falsa (quindi un dato falsy). Dunque, non verrá eseguito il codice all’interno del corpo del’if ma il codice presente nel corpo dell’else.

 

PHP IF/ELSEIF/ELSE

Analogamente a quanto sopra, con queste istruzioni il programma esegue il codice nel corpo dell’if solo se la condizione truthy all’interno delle parentesi é verificata.
Se non è così, va ad analizzare la condizione nelle parentesi dell’ elseif; se questa è verificata la eseguirà, altrimenti eseguirá il codice presente nel corpo dell’else.

<?php
  $color = 'red'; 
  if($color == 'red'){
    echo "Il colore é rosso!";
  }elseif($color == 'blue'){
    echo "Il colore é blue!";
  }else{
    echo "Il colore non é ne rosso ne blu!";
  } 
?>

Da cui risulterá:

Per sequenza verrà assegnato il valore ‘red’ alla variabile $color, dopodichè verrà incontrata l’istruzione if con la condizione al suo interno che é vera, quindi truthy. Quindi, grazie al php echo, il programma stamperá in console che il colore è rosso. 

Se il controllo nel primo if fosse stato falsy la sequenza sarebbe andata avanti incontrando la successiva istruzione dell’ elsif e, quindi, controllando se la condizione fosse verificata, in caso di truthy avrebbe stampato a terminale “il colore è blu”. Se nessuna delle due condizioni nell’if e nell’else-if si fosse verificata sarebbe stato eseguito l’ultimo php echo che ci avrebbe stampato a terminale “il colore non è ne rosso ne blue.” Semplicissimo, vero?

PHP SWITCH

E se il numero degli elseif aumentasse? Niente paura! Per fortuna, non dovremmo scriverli tutti creando, così, codice poco chiaro e non leggibile: useremmo, invece, lo switch case.
Lo switch non fa altro che valutare il valore di una variabile e scegliere un percorso da seguire tenendo conto di quest’ultimo. Se non troverà una corrispondenza, seguirà un percorso definito di default (predefinito).
Possiamo immaginare il comportamento dello switch come se fosse una stanza con tre porte colorate. Una gialla, una verde ed una blu. All’entrata ci consegnano un bigliettino corrispondente ad uno di questi tre colori e noi, quindi, possiamo aprire solo quella con il colore corrispondente. Il bigliettino è la variabile da valutare, mentre le porte sono le parti di codice da eseguire.

Vediamo un esempio:

<?php

  $color="yellow";

  //Nelle parentesi tonde mettiamo la variabile che vogliamo valutare

  switch($color){
    case $color == "green":
      echo "Sei entrato nella porta verde!";
      break;

    case $color == "blue":
      echo "Sei entrato nella porta blu!";
      break;

    case $color == "yellow":
      echo "Sei entrato nella porta gialla!";
      break;

    default: // gestisce tutte le altre casistiche che non ho pensato
      echo "Non ci sono porte del colore scelto!";
      break;
  }
  //Output
  //Sei entrato nella porta gialla!
?>

Come notiamo dall’esempio, tutti i “case” ed il default sostituiscono tutti gli if/else/elseif. Il break blocca il codice, che – ricordiamoci – segue una sequenza di esecuzione dall’alto verso il basso, ed il default verrà eseguito se $color non corrisponde a nessuno dei valori elencati nei case.

ITERAZIONE IN PHP

Le iterazioni ( o cicli ) sono blocchi di codice che si ripetono finché una determinata condizione da truthy non diventa falsy, ma anche per ogni elemento di una struttura dati complessa ( sempre, peró, finché la condizione risulti essere vera (truthy).
I cicli sono:

  • for
  • foreach
  • while
  • do-while

Analizziamoli uno per volta.

Ciclo FOR PHP

Un ciclo for ripete il codice racchiuso all’interno del suo corpo finché una particolare condizione non diventerá falsa (falsy). Questa condizione sará proprio un controllo sul numero di volte in cui avrá effettuato il ciclo.
É costituito da:

  • un punto d’entrata della logica del ciclo che corrisponderá ad un indice inizializzato a 0 (ovviamente a seconda dell’utilizzo puó avere anche valori diversi da zero)
  • la condizione di controllo del numero di cicli effettuati
  • l’incremento/decremento dell’indice

Vediamo un esempio di ciclo for:

<?php
  for ($i=0; $i < 5; $i++) {
    echo $i."\n";
  }
?>

Da cui risulterá:

Come puoi notare, questo ciclo non fará altro che mostrarci tutti i numeri da 0 a 4, poiché, nell’ultimo ciclo, effettuerá un controllo sulla condizione con l’indice pari a 5: tuttavia, 5 non é minore di 5 e, quindi, il nostro ciclo si fermerá mostrandoci il valore di $i pari a 4.

 

Ciclo FOREACH PHP

Un ciclo foreach viene utilizzato per selezionare e manipolare tutti gli elementi di un array ma anche di una collection (collezione di dati).
E’ composto da due parti principali:

  • L’array o la collection da ciclare
  • una variabile d’appoggio (immaginala come un contenitore all’interno del quale verrá inserito il dato appena preso dalla struttura dati)

La differenza fondamentale fra un ciclo for e un foreach è che il ciclo  si fermerà quando tutta la struttura dati sarà finita. Non possiamo controllare i cicli, come, invece, abbiamo fatto con la condizione del ciclo for.

<?php
  $elements=['ciao','sono','il','dato'];
  foreach ($elements as $element) {
    echo $element."\n";
  }
?>

Da cui risulterá:

Come vediamo, il programma ci stamperá in output ogni singolo dato dell’array. Possiamo utilizzare il php echo, in questo caso, perché ogni singolo dato è un dato semplice. Se stessimo, invece, catturando dati complessi dall’array avremmo dovuto utilizzare la php print_r().

Ciclo WHILE PHP

Un ciclo while esegue la porzione di codice al suo interno solo e soltanto se alla prima valutazione della sua condizione, questa sarà truthy. Tutte le successive esecuzioni del codice avverranno solo e soltanto se la condizione risulterà ancora truthy.

<?php
  $num=0;
  while($num < 5){
    echo $num."\n";
    $num++;
  }
?>

Da cui risulterá:

Osserva: eseguendo il codice dall’alto verso il basso (sequenza) cosa succede? Il programma inizializza una variabile chiamata $num a zero, incontra la dichiarazione del ciclo while e ne valuta la condizione. Effettivamente, 0 é minore di 5 e quindi la sua condizione sarà truthy; di conseguenza, entrerá nel corpo del ciclo while ed eseguirá il php echo, mostrandoci il valore di $num che risulterá essere 0. 

Incontrerá, poi, lo statement di incremento della variabile $num, per poi tornare a controllare la condizione. Ora $num é 1; 1 è minore di 5 quindi la sua condizione sarà ancora truthy e la porzione di codice si ripeterá finché $num non diventerá 5, che non sarà minore di 5 quindi il ciclo si fermerá.

Ciclo DO-WHILE PHP

Il ciclo do-while, a differenza del ciclo while, esegue la porzione di codice al suo interno almeno una volta e senza valutare la condizione prima di poter eseguire il codice al suo interno. Per le successive esecuzioni del codice verrá valutata la condizione che dovrá essere truthy e ripeterá il codice all’interno del corpo del do.

<?php
  $num=0;
  do{
    echo $num."\n";
    $num++;
  }while($num < 5);
?>

Da cui risulterá:

Come sopra: eseguendo il codice dall’alto verso il basso (sequenza) vediamo cosa succede. Il programma inizializza una variabile chiamata $num a zero, incontra la dichiarazione del ciclo do-while ed entra nel corpo del do eseguendo il codice.

Esegue, quindi, il php echo, mostrandoci il valore di $num (0 in questo passaggio); incontra, poi, l’incremento della variabile e aggiunge 1 a $num. Adesso valuta la condizione, 1 è effettivamente minore di 5 quindi la condizione sarà verificata e la porzione di codice si ripeterá finché $num non diventerà 5. Infine verifica che 5 non é minore di 5 e, quindi, blocca il ciclo.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.