diff --git a/language/control-structures/else.xml b/language/control-structures/else.xml
new file mode 100644
index 000000000..9dcb29356
--- /dev/null
+++ b/language/control-structures/else.xml
@@ -0,0 +1,87 @@
+
+
+
+
+ else
+
+
+ Spesso si desidera eseguire un'istruzione se una certa condizione è
+ soddisfatta, e un'istruzione diversa se la condizione non è soddisfatta. Questo
+ è lo scopo di else. else
+ estende un'istruzione if per eseguire un'istruzione
+ nel caso in cui l'espressione nell'istruzione if
+ venga valutata come &false;. Ad esempio, il seguente
+ codice visualizzerebbe a is greater than
+ b se $a è maggiore di
+ $b, e a is NOT greater
+ than b altrimenti:
+
+
+ $b) {
+ echo "a is greater than b";
+} else {
+ echo "a is NOT greater than b";
+}
+?>
+]]>
+
+
+
+ L'istruzione else viene eseguita solo se l'espressione
+ if è stata valutata come
+ &false;, e se ci sono
+ espressioni elseif - solo se anch'esse sono state valutate come
+ &false; (vedere elseif).
+
+
+
+ Else pendente
+
+ Nel caso di istruzioni if-else annidate,
+ un else è sempre associato all'if più vicino.
+
+
+
+]]>
+
+
+ Nonostante l'indentazione (che non ha importanza per PHP), l'else
+ è associato all'if ($b), quindi l'esempio non produce
+ alcun output. Anche se affidarsi a questo comportamento è valido, si raccomanda di
+ evitarlo utilizzando le parentesi graffe per risolvere potenziali ambiguità.
+
+
+
+
+
diff --git a/language/control-structures/if.xml b/language/control-structures/if.xml
new file mode 100644
index 000000000..807b1ca84
--- /dev/null
+++ b/language/control-structures/if.xml
@@ -0,0 +1,94 @@
+
+
+
+
+ if
+
+
+ Il costrutto if è una delle funzionalità più importanti
+ di molti linguaggi, PHP incluso. Permette l'esecuzione
+ condizionale di frammenti di codice. PHP presenta una struttura
+ if simile a quella del C:
+
+
+
+
+
+
+
+ Come descritto nella sezione sulle
+ espressioni, l'espressione viene valutata per il suo
+ valore booleano. Se l'espressione viene valutata come &true;,
+ PHP eseguirà l'istruzione, e se viene valutata
+ come &false; - la ignorerà. Maggiori informazioni su quali valori vengono valutati
+ come &false; si trovano nella sezione 'Conversione in boolean'.
+
+
+ Il seguente esempio visualizzerebbe a is bigger
+ than b se $a è maggiore
+ di $b:
+
+
+ $b)
+ echo "a is bigger than b";
+?>
+]]>
+
+
+
+
+ Spesso si desidera che più di un'istruzione venga eseguita
+ condizionalmente. Naturalmente, non è necessario racchiudere ogni istruzione
+ in una clausola if. È possibile invece raggruppare
+ diverse istruzioni in un blocco di istruzioni. Ad esempio, questo codice
+ visualizzerebbe a is bigger than b
+ se $a è maggiore di
+ $b, e poi assegnerebbe il valore di
+ $a a $b:
+
+
+ $b) {
+ echo "a is bigger than b";
+ $b = $a;
+}
+?>
+]]>
+
+
+
+
+ Le istruzioni if possono essere annidate all'infinito all'interno di altre
+ istruzioni if, il che offre completa
+ flessibilità per l'esecuzione condizionale delle varie parti del
+ programma.
+
+
+
+
diff --git a/language/control-structures/include-once.xml b/language/control-structures/include-once.xml
new file mode 100644
index 000000000..68820a7d8
--- /dev/null
+++ b/language/control-structures/include-once.xml
@@ -0,0 +1,46 @@
+
+
+
+
+ include_once
+
+
+ L'espressione include_once include e valuta
+ il file specificato durante l'esecuzione dello script.
+ Questo è un comportamento simile all'espressione include,
+ con l'unica differenza che se il codice di un file è già stato
+ incluso, non verrà incluso di nuovo, e include_once restituisce &true;. Come suggerisce il nome,
+ il file verrà incluso una sola volta.
+
+
+ include_once può essere utilizzato nei casi in cui
+ lo stesso file potrebbe essere incluso e valutato più di una volta durante una
+ particolare esecuzione di uno script, quindi in questo caso può aiutare ad evitare
+ problemi come ridefinizioni di funzioni, riassegnazioni di valori di variabili, ecc.
+
+
+ Vedere la documentazione di include per informazioni su
+ come funziona questa espressione.
+
+
+
+
diff --git a/language/control-structures/return.xml b/language/control-structures/return.xml
new file mode 100644
index 000000000..fb553a68a
--- /dev/null
+++ b/language/control-structures/return.xml
@@ -0,0 +1,80 @@
+
+
+
+
+ return
+
+
+ return restituisce il controllo del programma al modulo chiamante.
+ L'esecuzione riprende dall'espressione successiva alla chiamata del modulo.
+
+
+ Se chiamato dall'interno di una funzione, l'istruzione return
+ termina immediatamente l'esecuzione della funzione corrente e
+ restituisce il suo argomento come valore della chiamata
+ di funzione. return termina anche l'esecuzione di
+ un'istruzione eval o di un file di script.
+
+
+ Se chiamato dall'ambito globale, l'esecuzione del file di script
+ corrente viene terminata. Se il file di script corrente era stato
+ incluso con include o require,
+ il controllo viene restituito al file chiamante. Inoltre, se
+ il file di script corrente era stato incluso con include,
+ il valore passato a return verrà restituito come
+ valore della chiamata a include. Se
+ return viene chiamato dall'interno del file di script
+ principale, l'esecuzione dello script termina. Se il file di script corrente
+ era stato indicato dalle opzioni di configurazione auto_prepend_file o auto_append_file
+ in &php.ini;,
+ l'esecuzione di quel file di script viene terminata.
+
+ Per maggiori informazioni, vedere Restituire valori.
+
+
+
+
+ Si noti che poiché return è un costrutto del
+ linguaggio e non una funzione, le parentesi che circondano il suo
+ argomento non sono necessarie e il loro uso è sconsigliato.
+
+
+
+
+ Se non viene fornito alcun parametro, le parentesi devono essere omesse
+ e verrà restituito &null;. Chiamare return con le parentesi ma
+ senza argomenti risulterà in un errore di parsing.
+
+
+
+
+
+ A partire da PHP 7.1.0, le istruzioni return senza argomento in funzioni che dichiarano un tipo di ritorno generano E_COMPILE_ERROR,
+ a meno che il tipo di ritorno non sia void, nel qual caso le istruzioni return
+ con un argomento generano quell'errore.
+
+
+
+