PHP per aspiranti programmatori: B – strutture di controllo e inclusione di file

Le dichiarazioni condizionali eseguono azioni diverse per decisioni diverse. L’istruzione if else viene utilizzata per eseguire un determinato codice se una condizione è vera e un altro codice se la condizione è falsa. Sintassi:

<code>
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
</code>

È inoltre possibile utilizzare l’istruzione if senza la dichiarazione else, se non è necessario fare nulla, nel caso in cui la condizione sia falsa. L’esempio seguente produrrà il maggior numero dei due:

<code>
<?php
$x = 10;
$y = 20;
if ($x >= $y) {
echo $x;
} else {
echo $y;
}

// Outputs “20”
?>
</code>

Utilizzare l’istruzione if … elseif … else per specificare una nuova condizione da testare, se la prima condizione è falsa. Sintassi:

if (condition) {
code to be executed if condition is true;
} elseif (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}

Puoi aggiungere tutte le istruzioni elseif che desideri. Basta notare che l’istruzione elseif deve iniziare con un’istruzione if. Esempio:

<code>
<?php
$age = 21;

if ($age<=13) {
echo “Child.”;
} elseif ($age>13 && $age<19) {
echo “Teenager”;
} else {
echo “Adult”;
}

//Outputs “Adult”
?>
</code>

Abbiamo utilizzato l’operatore AND (&&) logico per combinare le due condizioni e verificare se $ age è tra 13 e 19. Le parentesi graffe possono essere omesse se esiste una sola istruzione dopo if / elseif / else. Esempio:

<code>
if($age<=13)
echo “Child”;
else
echo “Adult”;
</code>

Durante la scrittura del codice, è possibile che lo stesso blocco di codice venga eseguito più e più volte. Invece di aggiungere diverse linee di codice quasi uguali in uno script, possiamo usare i loop per eseguire un’attività come questa. Il ciclo while esegue un blocco di codice purché la condizione specificata sia vera.
Sintassi:

<code>
while (condition is true) {
code to be executed;
}
</code>

Se la condizione non diventa mai falsa, la dichiarazione continuerà ad essere eseguita indefinitamente. L’esempio seguente imposta prima una variabile $ i a one ($ i = 1). Quindi, il ciclo while viene eseguito finché $ i è inferiore a sette ($ i <7). $ aumenterò di uno ogni volta che viene eseguito il ciclo ($ i ++):

<code>
$i = 1;
while ($i < 7) {
echo “The value is $i <br />”;
$i++;
}
</code>

Il ciclo do … while eseguirà sempre il blocco di codice una volta, verificherà la condizione e ripeterà il ciclo finché la condizione specificata è vera.

<code>
do {
code to be executed;
} while (condition is true);
</code>

Indipendentemente dal fatto che la condizione sia vera o falsa, il codice verrà eseguito almeno una volta, che potrebbe essere necessario in alcune situazioni. L’esempio seguente scriverà un output e quindi incrementerà la variabile $ i per uno. Quindi la condizione viene verificata e il ciclo continua a essere eseguito, a condizione che $ i sia inferiore o uguale a 7.

<code>
$i = 5;
do {
echo “The number is ” . $i . “<br/>”;
$i++;
} while($i <= 7);

//Output
//The number is 5
//The number is 6
//The number is 7
</code>

Si noti che in un ciclo while, la condizione viene testata DOPO aver eseguito le istruzioni all’interno del ciclo. Ciò significa che il ciclo do while eseguirà le sue istruzioni almeno una volta, anche se la condizione è falsa la prima volta. Il ciclo for viene utilizzato quando sai in anticipo quante volte deve essere eseguito lo script.

<code>
for (init; test; increment) {
code to be executed;
}
</code>

<code>
Ciascuna delle espressioni dei parametri può essere vuota o contenere più espressioni separate da virgole.
Nell’istruzione for, i parametri sono separati da punto e virgola.
</code>

L’esempio seguente mostra i numeri da 0 a 5:

<code>
for ($a = 0; $a < 6; $a++) {
echo “Value of a : “. $a . “<br />”;
}
</code>

Il ciclo for nell’esempio sopra prima imposta la variabile $ a su 0, quindi controlla la condizione ($ a <6). Se la condizione è vera, esegue il codice. Successivamente, incrementa $ a ($ a ++). Il ciclo foreach funziona solo sugli array e viene utilizzato per scorrere ogni coppia chiave / valore in una matrice. Vediamo la sintassi:

<code>
foreach (array as $value) {
code to be executed;
}
//or
foreach (array as $key => $value) {
code to be executed;
}
</code>

Il primo modulo scorre sull’array. Ad ogni iterazione, il valore dell’elemento corrente viene assegnato a $ value e il puntatore dell’array viene spostato di uno, fino a raggiungere l’ultimo elemento dell’array.
Il secondo modulo assegnerà inoltre la chiave dell’elemento corrente alla variabile $ chiave su ogni iterazione. L’esempio seguente mostra un ciclo che emette i valori dell’array $ names.

<code>
$names = array(“John”, “David”, “Amy”);
foreach ($names as $name) {
echo $name.'<br />’;
}

// John
// David
// Amy
</code>

L’istruzione switch è un’alternativa all’istruzione if-elseif-else. Utilizzare l’istruzione switch per selezionare uno dei vari blocchi di codice da eseguire. Sintassi:

<code>
switch (n) {
case value1:
//code to be executed if n=value1
break;
case value2:
//code to be executed if n=value2
break;

default:
// code to be executed if n is different from all labels
}
</code>

Innanzitutto, la nostra singola espressione, n (il più delle volte una variabile), viene valutata una volta. Successivamente, il valore dell’espressione viene confrontato con il valore di ciascun caso nella struttura. Se c’è una corrispondenza, viene eseguito il blocco di codice associato a quel caso. L’uso di istruzioni nidificate if else comporta un comportamento simile, ma switch offre una soluzione più elegante e ottimale. Considera il seguente esempio, che mostra il messaggio appropriato per ogni giorno.

<code>
$today = ‘Tue’;

switch ($today) {
case “Mon”:
echo “Today is Monday.”;
break;
case “Tue”:
echo “Today is Tuesday.”;
break;
case “Wed”:
echo “Today is Wednesday.”;
break;
case “Thu”:
echo “Today is Thursday.”;
break;
case “Fri”:
echo “Today is Friday.”;
break;
case “Sat”:
echo “Today is Saturday.”;
break;
case “Sun”:
echo “Today is Sunday.”;
break;
default:
echo “Invalid day.”;
}
//Outputs “Today is Tuesday.”
</code>

La parola chiave break che segue ogni caso viene utilizzata per mantenere il codice automaticamente in esecuzione nel caso successivo. Se dimentichi la pausa; dichiarazione, PHP continuerà automaticamente attraverso le successive dichiarazioni del caso, anche se il caso non corrisponde. L’istruzione predefinita viene utilizzata se non viene trovata alcuna corrispondenza. L’istruzione di default è opzionale e può essere omessa:

<code>
$x=5;
switch ($x) {
case 1:
echo “One”;
break;
case 2:
echo “Two”;
break;
default:
echo “No match”;
}

//Outputs “No match”
</code>

Non riuscendo a specificare l’istruzione break, PHP continua ad eseguire le istruzioni che seguono il caso, fino a quando non trova un’interruzione. È possibile utilizzare questo comportamento se è necessario arrivare allo stesso output per più di un caso.

<code>
$day = ‘Wed’;

switch ($day) {
case ‘Mon’:
echo ‘First day of the week’;
break;
case ‘Tue’:
case ‘Wed’:
case ‘Thu’:
echo ‘Working day’;
break;
case ‘Fri’:
echo ‘Friday!’;
break;
default:
echo ‘Weekend!’;
}

//Outputs “Working day”
</code>

L’esempio sopra avrà lo stesso risultato se $ day è uguale a “Tue”, “Wed” o “Thu”. Come discusso nella lezione precedente, l’istruzione break è usata per uscire dall’interruttore quando un caso è abbinato.
Se l’interruzione è assente, il codice continua a funzionare. Per esempio:

<code>
$x=1;
switch ($x) {
case 1:
echo “One”;
case 2:
echo “Two”;
case 3:
echo “Three”;
default:
echo “No match”;
}

//Outputs “OneTwoThreeNo match”
</code>

Break può anche essere usato per fermare l’esecuzione di for, foreach, while, do-while structures.
L’istruzione break termina la corrente for, foreach, while, do-while o switch e continua a eseguire il programma sulla riga che si apre dopo il ciclo. Un’istruzione break nella parte esterna di un programma (ad esempio, non in un ciclo di controllo) interromperà lo script. Se utilizzato all’interno di una struttura di loop, l’istruzione continue consente di ignorare ciò che rimane dell’iterazione del ciclo corrente. Quindi continua l’esecuzione alla valutazione delle condizioni e passa all’inizio della successiva iterazione. L’esempio seguente ignora i numeri pari nel ciclo for:

<code>
for ($i=0; $i<10; $i++) {
if ($i%2==0) {
continue;
}
echo $i . ‘ ‘;
}

//Output: 1 3 5 7 9
</code>

Puoi usare l’istruzione continue con tutte le strutture di looping.

The include and require statements allow for the insertion of the content of one PHP file into another PHP file, before the server executes it. Including files saves quite a bit of work. You can create a standard header, footer, or menu file for all of your web pages. Then, when the header is requiring updating, you can update the header include file only. Assume that we have a standard header file called header.php.

<code>
<?php
echo ‘<h1>Welcome</h1>’;
?>
</code>

Utilizzare l’istruzione include per includere il file di intestazione in una pagina:

<code>
<html>
<body>

<?php include ‘header.php’; ?>

<p>Some text.</p>
<p>Some text.</p>
</body>
</html>
</code>

<code>
</code>

Le istruzioni include e require consentono l’inserimento del contenuto di un file PHP in un altro file PHP, prima che il server lo esegua.

Utilizzando questo approccio, abbiamo la possibilità di includere lo stesso file header.php in più pagine.

<code>
<html>
<body>

<?php include ‘header.php’; ?>

<p>This is a paragraph</p>
</body>
</html>
</code>

I file sono inclusi in base al percorso del file. È possibile utilizzare un percorso assoluto o relativo per specificare quale file deve essere incluso. L’istruzione require è identica a includere, ad eccezione del fatto che, in caso di errore, produce un errore fatale. Quando un file è incluso usando l’istruzione include, ma PHP non riesce a trovarlo, lo script continua a essere seguito. In caso di richiesta, lo script cesserà l’esecuzione e produrrà un errore. Utilizzare richiede quando il file è richiesto per l’esecuzione dell’applicazione. Utilizzare include quando il file non è richiesto. L’applicazione dovrebbe continuare, anche quando il file non viene trovato.

Annunci