Ricerca…


Sintassi alternativa per le strutture di controllo

PHP fornisce una sintassi alternativa per alcune strutture di controllo: if , while , for , foreach e switch .

Rispetto alla sintassi normale, la differenza è che la coppia di apertura è sostituita da due punti ( : ) e la parentesi di chiusura è sostituito da endif; , endwhile; , endfor; , fine ricerca endforeach; o endswitch; , rispettivamente. Per singoli esempi, consultare l'argomento sulla sintassi alternativa per le strutture di controllo .

if ($a == 42):
    echo "The answer to life, the universe and everything is 42.";
endif;

Più istruzioni elseif che usano la sintassi breve:

if ($a == 5):
    echo "a equals 5";
elseif ($a == 6):
    echo "a equals 6";
else:
    echo "a is neither 5 nor 6";
endif;

Manuale PHP - Strutture di controllo - Sintassi alternativa

mentre

while loop itera su un blocco di codice purché una condizione specificata sia vera.

$i = 1;
while ($i < 10) {
    echo $i;
    $i++;
}

Uscita: 123456789

Per informazioni dettagliate, vedere l'argomento Loops .

fare mentre

do-while loop esegue prima un blocco di codice una volta, in ogni caso, quindi scorre attraverso quel blocco di codice finché una condizione specificata è vera.

$i = 0;
do {
    $i++;
    echo $i;
} while ($i < 10);

Output: `12345678910`

Per informazioni dettagliate, vedere l'argomento Loops .

vai a

L'operatore goto consente di passare a un'altra sezione del programma. È disponibile da PHP 5.3.

L'istruzione goto è una goto seguita dall'etichetta target desiderata: goto MyLabel; .

L'obiettivo del salto è specificato da un'etichetta seguita da due punti: MyLabel:

Questo esempio stamperà Hello World! :

<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
 
MyLabel:
echo 'Hello World!';
?>

dichiarare

declare è usato per impostare una direttiva di esecuzione per un blocco di codice.

Le seguenti direttive sono riconosciute:

Ad esempio, imposta zecche su 1:

declare(ticks=1);

Per abilitare la modalità tipo strict, l'istruzione declare viene utilizzata con la dichiarazione strict_types :

declare(strict_types=1);

se altro

L'istruzione if nell'esempio precedente consente di eseguire un frammento di codice, quando la condizione è soddisfatta. Quando si desidera eseguire un frammento di codice, quando la condizione non è soddisfatta si estende il if con un else .

if ($a > $b) {
  echo "a is greater than b";
} else {
  echo "a is NOT greater than b";
}

Manuale PHP - Strutture di controllo - Altro

L'operatore ternario come sintassi abbreviata per if-else

L' operatore ternario valuta qualcosa in base al fatto che una condizione sia vera o meno. È un operatore di confronto e viene spesso utilizzato per esprimere una semplice condizione if-else in una forma più breve. Permette di testare rapidamente una condizione e spesso sostituisce una dichiarazione multi-linea, rendendo il codice più compatto.

Questo è l'esempio di sopra usando un'espressione ternaria e valori variabili: $a=1; $b=2;

echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";

Uscite: a is NOT greater than b .

includi e richiedi

richiedere

require è simile a include , tranne che produrrà un errore di livello E_COMPILE_ERROR irreversibile in E_COMPILE_ERROR errore. Quando il require fallisce, interromperà lo script. Quando l' include fallisce, non interromperà lo script e solo emetterà E_WARNING .

require 'file.php';

Manuale PHP - Strutture di controllo - Richiedi

includere

L' include dichiarazione include e valuta un file.

./variables.php

$a = 'Hello World!';

. / Main.php`

include 'variables.php';
echo $a;
// Output: `Hello World!`

Fai attenzione a questo approccio, poiché è considerato un odore di codice , perché il file incluso sta modificando la quantità e il contenuto delle variabili definite nell'ambito specificato.


Puoi anche include file, che restituisce un valore. Questo è estremamente utile per gestire gli array di configurazione:

configuration.php

<?php 
return [
    'dbname' => 'my db',
    'user' => 'admin',
    'pass' => 'password',
];

main.php

<?php
$config = include 'configuration.php';

Questo approccio impedisce al file incluso di inquinare l'ambito corrente con variabili modificate o aggiunte.

Manuale PHP - Strutture di controllo - Includi


include & require può anche essere usato per assegnare valori a una variabile quando restituito qualcosa per file.

Esempio :

file include1.php:

<?php
    $a = "This is to be returned";

    return $a;
?>

file index.php:

    $value = include 'include1.php';
   // Here, $value = "This is to be returned"

ritorno

L'istruzione return restituisce il controllo del programma alla funzione chiamante.

Quando viene richiamato il return da una funzione, l'esecuzione della funzione corrente terminerà.

function returnEndsFunctions()
{
   echo 'This is executed';
   return;
   echo 'This is not executed.';
}

Quando esegui returnEndsFunctions(); otterrai l'output This is executed ;

Quando return viene chiamato da una funzione con e argomento, l'esecuzione della funzione corrente terminerà e il valore dell'argomento verrà restituito alla funzione chiamante.

per

for loop vengono in genere utilizzati quando si dispone di un pezzo di codice che si desidera ripetere un determinato numero di volte.

for ($i = 1; $i < 10; $i++) {
    echo $i;
}

Uscite: 123456789

Per informazioni dettagliate, vedere l'argomento Loops .

per ciascuno

foreach è un costrutto che consente di scorrere facilmente array e oggetti.

$array = [1, 2, 3];
foreach ($array as $value) {
    echo $value;
}

Uscite: 123 .

Per utilizzare il ciclo foreach con un oggetto, deve implementare l'interfaccia Iterator .

Quando si itera su array associativi:

$array = ['color'=>'red']; 

foreach($array as $key => $value){
    echo $key . ': ' . $value; 
}

Uscite: color: red

Per informazioni dettagliate, vedere l'argomento Loops .

se altro altrimenti

elseif

elseif combina if e else . L'istruzione if viene estesa per eseguire un'istruzione diversa nel caso in cui l'espressione originale if non sia soddisfatta. Ma l'espressione alternativa viene eseguita solo quando viene soddisfatta l'espressione condizionale elseif .

Il codice seguente mostra "a è maggiore di b", "a è uguale a b" o "a è minore di b":

if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

Diverse dichiarazioni elseif

Puoi utilizzare più istruzioni elseif all'interno della stessa istruzione if:

if ($a == 1) {
    echo "a is One";
} elseif ($a == 2) {
    echo "a is Two";
} elseif ($a == 3) {
    echo "a is Three";
} else {
    echo "a is not One, not Two nor Three";
}

Se

Il costrutto if consente l'esecuzione condizionale di frammenti di codice.

if ($a > $b) {
  echo "a is bigger than b";
}

Manuale PHP - Strutture di controllo - Se

interruttore

La struttura switch svolge la stessa funzione di una serie di istruzioni if , ma può eseguire il lavoro con meno righe di codice. Il valore da testare, come definito switch , viene confrontato per l'uguaglianza con i valori in ciascuna delle istruzioni case fino a quando viene trovata una corrispondenza e il codice in quel blocco viene eseguito. Se non viene trovata alcuna istruzione case corrispondente, viene eseguito il codice nel blocco default , se esiste.

Ogni blocco di codice in un case o in un'istruzione default dovrebbe terminare con l'istruzione break . Ciò interrompe l'esecuzione della struttura switch e continua l'esecuzione del codice subito dopo. Se l'istruzione break è omessa, viene eseguito il codice dell'istruzione del case successivo, anche se non vi è alcuna corrispondenza . Ciò può causare l'esecuzione inaspettata del codice se l'istruzione break viene dimenticata, ma può anche essere utile laddove più istruzioni case devono condividere lo stesso codice.

switch ($colour) {
case "red":
    echo "the colour is red";
    break;
case "green":
case "blue":
    echo "the colour is green or blue";
    break;
case "yellow":
    echo "the colour is yellow";
    // note missing break, the next block will also be executed
case "black":
    echo "the colour is black";
    break;
default:
    echo "the colour is something else";
    break;
}

Oltre a testare valori fissi, il costrutto può anche essere forzato per verificare le dichiarazioni dinamiche fornendo un valore booleano all'istruzione switch e qualsiasi espressione all'istruzione case . Tieni presente che viene utilizzato il primo valore corrispondente, pertanto il codice seguente genererà "più di 100":

$i = 1048;
switch (true) {
case ($i > 0):
    echo "more than 0";
    break;
case ($i > 100):
    echo "more than 100";
    break;
case ($i > 1000):
    echo "more than 1000";
    break;
}

Per eventuali problemi di digitazione allentata durante l'utilizzo del costrutto dello switch , vedi Cambio sorprese



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow