<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ PHP - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ PHP - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:21:05 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/tag/php/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ I migliori esempi di PHP ]]>
                </title>
                <description>
                    <![CDATA[ PHP è un linguaggio di scripting lato server creato nel 1995 da Rasmus Lerdorf. Si tratta di un linguaggio di scripting general-purpose open source ampiamente utilizzato che è particolarmente adatto per lo sviluppo web e può essere incorporato nell'HTML. Per cosa è usato PHP? Ad ottobre 2018, PHP è usato ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/i-migliori-esempi-di-php/</link>
                <guid isPermaLink="false">635d63fe9e87da0634a76ad7</guid>
                
                    <category>
                        <![CDATA[ PHP ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Dario Di Cillo ]]>
                </dc:creator>
                <pubDate>Fri, 04 Nov 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/10/php-examples.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/the-best-php-examples/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The Best PHP Examples</a>
      </p><p>PHP è un linguaggio di scripting lato server creato nel 1995 da Rasmus Lerdorf.</p><p>Si tratta di un linguaggio di scripting general-purpose open source ampiamente utilizzato che è particolarmente adatto per lo sviluppo web e può essere incorporato nell'HTML.</p><h3 id="per-cosa-usato-php"><strong>Per cosa è usato PHP?</strong></h3><p>Ad ottobre 2018, PHP è usato sull'<a href="https://w3techs.com/technologies/overview/programming_language/all">80% dei siti web di cui è noto il linguaggio lato server</a>. Solitamente è utilizzato sui siti web per generare contenuti di pagine web dinamicamente. I casi di utilizzo comprendono: </p><ul><li>siti e applicazioni web (scripting lato server)</li><li>scripting su riga di comando</li><li>applicazioni desktop (GUI)</li></ul><p>È tipicamente usato nella prima forma per generare contenuti di pagine web dinamicamente. Ad esempio, se hai un blog, potresti scrivere degli script PHP per recuperare i post del blog da un database e visualizzarli. Altri utilizzi per gli script PHP comprendono:</p><ul><li>elaborare e salvare input utente da un modulo dati</li><li>impostare e lavorare con i cookie</li><li>impedire l'accesso ad alcune pagine di un sito</li></ul><p>La piattaforma social più grande, <a href="https://www.facebook.com/">Facebook</a> è scritta usando PHP</p><h3 id="come-funziona-php"><strong>Come funziona PHP?</strong></h3><p>Tutto il codice PHP è eseguito soltanto su un server web, non sul tuo computer locale. Ad esempio, se compili un modulo su un sito web e lo invii, o clicchi su un link a una pagina web scritta in PHP, in realtà nessun codice PHP è eseguito sul tuo computer. Invece, il modulo dati (o la richiesta per la pagina web) viene inviato a un server web per essere elaborato da degli script PHP. Poi, il server web ti rimanda indietro l'HTML elaborato (da qui il nome 'Hypertext Preprocessor') e il browser ti mostra il risultato. Per questa ragione, non puoi vedere il codice PHP di un sito web, ma solo l'HTML risultante prodotto dagli script PHP.</p><p>Questo processo è mostrato qui sotto:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/02/PHP-server-model.png" class="kg-image" alt="PHP-server-model" width="600" height="400" loading="lazy"><figcaption>Source: https://github.com/xeroxism/</figcaption></figure><p>PHP è un linguaggio interpretato. Questo vuol dire che quando fai dei cambiamenti al codice sorgente, puoi testarli immediatamente, senza bisogno di compilare il tuo codice sorgente in forma binaria. Saltare gli step di compilazione rende il processo di sviluppo molto più veloce.</p><p>Il codice PHP è racchiuso tra i tag <code>&lt;?php</code> e <code>?&gt;</code> e può essere incorporato nell'HTML.</p><h2 id="installazione"><strong>Installazione</strong></h2><p>PHP può essere installato con o senza un server web.</p><h3 id="gnu-linux"><strong>GNU/Linux</strong></h3><p>Su distribuzioni GNU/Linux basate su Debian, puoi installarlo con:</p><pre><code class="language-bash">sudo apt install php</code></pre><p>Su Centos 6 o 7 puoi installarlo con:</p><pre><code class="language-bash">sudo yum install php</code></pre><p>Dopo l'installazione, puoi eseguire qualsiasi file PHP facendo semplicemente questo nel terminale:</p><pre><code class="language-text">php file.php</code></pre><p>Puoi anche installare un server localhost per eseguire dei siti web PHP. Per installare il server web Apache:</p><pre><code class="language-text">sudo apt install apache2 libapache2-mod-php</code></pre><p>Oppure puoi anche installare PHP, MySQL &amp; il server web installando <a href="https://www.apachefriends.org/download.html">XAMPP</a> (un pacchetto solution stack multi-piattaforma gratuito e open-source) o pacchetti simili come <a href="http://www.wampserver.com/en/">WAMP</a>.</p><h2 id="framework-php"><strong>Framework PHP</strong></h2><p>Dato che scrivere l'intero codice per un sito web non è davvero pratico/fattibile per la maggior parte dei progetti, molti sviluppatori tendono a usare dei framework per lo sviluppo web. Il vantaggio di usare un framework è che:</p><ul><li>Non devi inventare la ruota ogni volta che crei un progetto, dato che molte cose vengono gestite per te</li><li>Sono generalmente ben strutturati in modo da aiutare nella separazione dei problemi</li><li>La maggior parte dei framework tende a seguire le migliori pratiche del linguaggio</li><li>Molti seguono il modello MVC (Model-View-Controller) così da separare il lato della presentazione dalla logica</li></ul><h3 id="framework-conosciuti"><strong>Framework conosciuti</strong></h3><ul><li><a href="https://codeigniter.com/">CodeIgniter</a></li><li><a href="https://laravel.com/">Laravel</a></li><li><a href="https://symfony.com/">Symfony</a></li><li><a href="http://www.zend.com/">Zend</a></li><li><a href="https://cakephp.org/">CakePHP</a></li><li><a href="https://fuelphp.com/">FuelPHP</a></li><li><a href="https://www.slimframework.com/">Slim</a></li><li><a href="https://www.yiiframework.com/">Yii 2</a></li></ul><h2 id="sintassi-di-base"><strong>Sintassi di base</strong></h2><p>Gli script PHP possono essere posizionati ovunque in un documento, iniziano sempre con <code>&lt;?php</code> e terminano con <code>?&gt;</code>. Inoltre, le istruzioni PHP terminano con un punto e virgola (;).</p><p>Ecco un semplice script che utilizza la funzione integrata <code>echo</code> per mostrare sulla pagina il testo "The Best PHP Examples":</p><pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;

&lt;h1&gt;Developer News&lt;/h1&gt;

&lt;?php echo "I migliori esempi di PHP"; ?&gt;

&lt;/body&gt;
&lt;/html&gt; </code></pre><p>L'output sarà:</p><pre><code class="language-text">Developer News

I migliori esempi di PHP</code></pre><h3 id="commenti"><strong>Commenti</strong></h3><p>PHP supporta diversi modi di commentare:</p><ul><li>Commenti su riga singola:</li><li>Commenti multi-riga:</li></ul><pre><code>&lt;?php
  // Questo è un commento su riga singola
  
  # Puoi scrivere dei commenti su una sola riga così
?&gt;</code></pre><pre><code>&lt;?php
/*
Questo blocco di commento
occupa più 
righe
*/
?&gt;</code></pre><h3 id="case-sensitivity"><strong>Case Sensitivity</strong></h3><p>Tutte le parole chiave, le classi e le funzioni NON sono sensibili alle maiuscole.</p><p>Nell'esempio qui sotto, tutte e tre le istruzioni echo sono valide:</p><pre><code class="language-text">&lt;?php
ECHO "Ciao!&lt;br&gt;";
echo "Benvenuto su Developer News&lt;br&gt;";
EcHo "Leggi tutti gli articoli senza pubblicità&lt;br&gt;";
?&gt;</code></pre><p>Tuttavia, tutti i nomi di variabili sono sensibili alle maiuscole. Nell'esempio qui sotto, solo la prima istruzione è valida e mostrerà il valore della variabile <code>$nome</code>. <code>$NOME</code> e <code>$NoMe</code> sono trattate come variabili diverse:</p><pre><code class="language-text">&lt;?php
$nome = "Quincy";
echo "Ciao! Il mio nome è " . $nome . "&lt;br&gt;";
echo "Ciao! Il mio nome è " . $NOME . "&lt;br&gt;";
echo "Ciao! Il mio nome è " . $NoMe . "&lt;br&gt;";
?&gt;</code></pre><h2 id="variabili"><strong>Variabili</strong></h2><p>Le variabili sono il modo principale per memorizzare informazioni in un programma PHP.</p><p>Tutte le variabili in PHP iniziano con il simbolo del dollaro, come <code>$nome_variabile</code>. Per assegnare una variabile, usa l'operatore <code>=</code>, con il nome della variabile sulla sinistra e l'espressione da valutare sulla destra.</p><p><strong><strong>Sintassi<strong><strong>:</strong></strong></strong></strong></p><pre><code class="language-php">&lt;?php
// Assegna il valore "Ciao!" alla variabile "saluto"
$saluto = "Ciao!";
// Assegna il valore 8 alla variabile "mese"
$mese = 8;
// Assegna il valore 2019 alla variabile "anno"
$anno = 2019;
?&gt;</code></pre><h3 id="regole-per-le-variabili-php"><strong>Regole per le variabili PHP</strong></h3><ul><li>Le dichiarazioni delle variabili iniziano con <code>$</code>, seguito dal nome della variabile</li><li>I nomi delle variabili possono iniziare solo con una lettera minuscola o maiuscola o un trattino basso (<code>_</code>)</li><li>I nomi delle variabili possono contenere solo lettere, numeri o trattini bassi (A-z, 0-9, and <code>_</code>). Altri caratteri speciali come <code>+ - % ( ) . &amp;</code> non sono validi</li><li>I nomi delle variabili sono sensibili alle maiuscole</li></ul><p><strong>Alcuni esempi di nomi di variabili consentiti<strong>:</strong></strong></p><ul><li>$my_variable</li><li>$anotherVariable</li><li>$the2ndVariable</li></ul><h3 id="valori-predefiniti"><strong>Valori predefiniti</strong></h3><p>PHP ha diverse parole chiave speciali che, nonostante siano nomi di variabile "validi", non possono essere usati come tali. La ragione è che il linguaggio stesso possiede queste variabili già definite e queste vengono usate per degli scopi speciali. Puoi vedere alcuni esempi nell'elenco qui sotto, o consultare il <a href="https://www.php.net/manual/en/language.variables.predefined.php">sito della documentazione PHP</a> per la lista completa.</p><ul><li><code>$this</code></li><li><code>$_GET</code></li><li><code>$_POST</code></li><li><code>$_SERVER</code></li><li><code>$_FILES</code></li></ul><h2 id="tipi-di-dato-in-php"><strong>Tipi di dato in PHP</strong></h2><p>Le variabili possono contenere diversi tipi di dato, come:</p><ul><li>Stringa ("Ciao")</li><li>Intero (5)</li><li>Float (anche detto double) (1.0)</li><li>Booleano ( 1 o 0 )</li><li>Array ( array("Io", "sono", "un", "array") )</li><li>Oggetto</li><li>NULL</li><li>Risorsa</li></ul><h3 id="stringhe"><strong>Stringhe</strong></h3><p>Una stringa è una sequenza di caratteri. Può essere un testo qualsiasi all'interno di virgolette (singole o doppie):</p><pre><code class="language-php">$x = "Hello!";
$y = 'Hello!';</code></pre><h3 id="interi"><strong>Interi</strong></h3><p>Il tipo di dato intero è un numero non decimale tra -2,147,483,648 e 2,147,483,647.</p><p><strong><strong>R</strong>egole per gli interi<strong>:</strong></strong></p><ul><li>devono avere almeno una cifra</li><li>non devono avere il punto decimale</li><li>possono essere positivi o negativi</li></ul><p><code>$x = 5;</code></p><h3 id="float"><strong>Float</strong></h3><p>Un float, o numero in virgola mobile, è un numero con un punto decimale.</p><p><code>$x = 5.01;</code></p><h3 id="booleani"><strong>Booleani</strong></h3><p>Un booleano rappresenta due possibili stati: TRUE (vero) o FALSE (falso). I booleani sono spesso usati nelle istruzioni condizionali.</p><pre><code class="language-php">$x = true;
$y = false;</code></pre><h3 id="array"><strong>Array</strong></h3><p>Un array contiene valori multipli in una singola variabile.</p><p><code>$colori = array("Magenta", "Giallo", "Ciano");</code></p><h3 id="null"><strong>NULL</strong></h3><p>Null è un tipo di dato speciale che ha soltanto il valore <code>null</code>. Le variabili possono essere dichiarate senza valore o svuotate, impostandone il valore su <code>null</code>. Inoltre, se una variabile è creata senza un valore, le viene automaticamente assegnato <code>null</code>.</p><pre><code class="language-php">&lt;?php
// Assegna il valore "Ciao!" a "saluto"
$saluto = "Ciao!";

// Svuota il valore di "saluto" impostandolo su null
$saluto = null;
?&gt;</code></pre><h3 id="classi-e-oggetti"><strong>Classi e Oggetti</strong></h3><p>Una classe è una struttura di dati utile per la modellazione di elementi del mondo reale e può contenere proprietà e metodi. Gli oggetti sono istanze di una classe e sono un modo conveniente per impacchettare valori e funzioni specifici di una classe.</p><pre><code class="language-php">&lt;?php
class Macchina {
    function Macchina() {
        $this-&gt;modello = "Tesla";
    }
}

// crea un oggetto
$Lightning = new Macchina();

// mostra le proprietà dell'oggetto
echo $Lightning-&gt;modello;
?&gt;</code></pre><h3 id="risorse-php"><strong>Risorse PHP</strong></h3><p>Una risorsa è una variabile speciale, contenente un riferimento a una risorsa esterna. Le risorse sono create e usate da funzioni speciali. Puoi usare la funzione <a href="http://php.net/manual/en/function.get-resource-type.php">get<em><em>resource</em></em>type()</a> per vedere il tipo di risorsa.</p><pre><code class="language-php">&lt;?php
// stampa: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// stampa: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// stampa: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc-&gt;doc) . "\n";</code></pre><h2 id="stringhe-1"><strong>Stringhe</strong></h2><p>Una stringa è una serie di caratteri che può essere usata per memorizzare qualsiasi informazione di testo in una applicazione.</p><p>Esistono diversi modi per creare delle stringhe in PHP.</p><h3 id="virgolette-singole"><strong>Virgolette singole</strong></h3><p>Delle stringhe semplici possono essere create usando le virgolette singole.</p><pre><code class="language-php">$nome = 'Joe';</code></pre><p>Per includere una virgoletta singola in una stringa, usa il carattere di escape barra rovesciata (backslash).</p><pre><code class="language-php">$cognome = 'O\'Brian';</code></pre><h3 id="virgolette-doppie"><strong>Virgolette doppie</strong></h3><p>Puoi creare delle stringhe anche usando le virgolette doppie.</p><pre><code class="language-php">$nome = "Joe";</code></pre><p>Per includere una virgoletta doppia in una stringa, usa il carattere di escape barra rovesciata.</p><pre><code class="language-php">$citazione = "Mary disse, \"Voglio un toast,\" e poi andò via.";</code></pre><p>Anche le stringhe con virgolette doppie consentono l'uso di sequenze di escape. Si tratta di codici speciali che inseriscono nella stringa dei caratteri che normalmente sono invisibili. Alcuni esempi sono una nuova riga <code>\n</code>, il tab <code>\t</code> e la barra rovesciata <code>\\</code>.</p><p>Puoi anche incorporare le variabili PHP in stringhe con virgolette doppie per aggiungere il loro valore alla &nbsp;stringa.</p><pre><code class="language-php">$nome = 'Joe';
$saluto = "Ciao $nome"; // ora contiene la stringa "Ciao Joe"</code></pre><h3 id="funzioni-per-stringhe"><strong>Funzioni per stringhe</strong></h3><h4 id="trovare-la-lunghezza-di-una-stringa"><strong>Trovare la lunghezza di una stringa</strong></h4><p>La funzione <code>strlen()</code> restituisce la lunnghezza di una stringa.</p><pre><code class="language-text">&lt;?php
echo strlen("Developer News"); // l'output è 14
?&gt;</code></pre><h4 id="trovare-il-numero-di-parole-in-una-stringa">Trovare il numero di parole in una stringa</h4><p>La funzione <code>str<em><em>word</em></em>count()</code> restituisce il numero di parole in una &nbsp;stringa:</p><pre><code class="language-text">&lt;?php
echo str_word_count("Developer News"); // L'output è 2
?&gt;</code></pre><h4 id="invertire-una-stringa"><strong>Invertire una stringa</strong></h4><p>La funzione <code>strrev()</code> inverte una stringa:</p><pre><code class="language-text">&lt;?php
echo strrev("Developer News"); // L'output è sweN repoleveD
?&gt;</code></pre><h4 id="cercare-del-testo-in-una-stringa"><strong>Cercare del testo in una &nbsp;stringa</strong></h4><p>La funzione <code>strpos()</code> ricerca del testo in una stringa:</p><pre><code class="language-text">&lt;?php
echo strpos("Developer News", "News"); // L'ouput è 10
?&gt;</code></pre><h4 id="sostituire-del-testo-in-una-stringa"><strong>Sostituire del testo in una stringa</strong></h4><p>La funzione <code>str_replace()</code> sostituisce del testo in una stringa:</p><pre><code class="language-text">&lt;?php
echo str_replace("freeCodeCamp", "Developer", "freeCodeCamp News"); // L'output è Developer News
?&gt;</code></pre><h2 id="costanti"><strong>Costanti</strong></h2><p>Le costanti sono un tipo di variabile in PHP. La funzione <code>define()</code> per impostare una costante prende tre argomenti – il nome della chiave, il valore della chiave e un booleano (true o false), che determina se il nome della chiave non è sensibile alle maiuscole (falso di default). Il valore di una costante non può essere alterato una volta impostato. Vengono usate per valori che cambiano di rado (ad esempio la password di un database o la chiave di una API).</p><h3 id="visibilit-"><strong>Visibilità</strong></h3><p>È importante sapere che, a differenza delle variabili, le costanti hanno SEMPRE una visibilità globale e vi si può accedere da qualsiasi funzione nello script.</p><pre><code class="language-php">&lt;?php
define("freeCodeCamp", "Learn to code and help nonprofits", false);
echo freeCodeCamp;
&gt;?

// Output: Learn to code and help nonprofits</code></pre><p>Inoltre, quando crei una classe, puoi dichiarare delle costanti.</p><pre><code class="language-php">class Human {
  const TYPE_MALE = 'm';
  const TYPE_FEMALE = 'f';
  const TYPE_UNKNOWN = 'u'; // Quando l'utente non selezionato il genere
  
  .............
}</code></pre><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> Se vuoi usare queste costanti all'interno della classe <code>Human</code>, puoi far loro riferimento come a <code>self::NOME_COSTANTE</code>. Se vuoi usarle fuori dalla classe, devi usare <code>Human::NOME_COSTANTE</code>.</p><h2 id="operatori"><strong>Operatori</strong></h2><p>PHP contiene tutti i normali operatori che ti aspetteresti di trovare in un linguaggio di programmazione.</p><p>Un <code>=</code> singolo viene usato come operatore di assegnazione e <code>==</code> o <code>===</code> vengono usati come operatori di confronto.</p><p>I soliti <code>&lt;</code> e <code>&gt;</code> possono essere usati per il confronto e <code>+=</code> può essere usato per aggiungere un valore e assegnarlo allo stesso tempo.</p><p>Importante è anche l'uso di <code>.</code> per concatenare stringhe e di <code>.=</code> per aggiungere una stringa alla fine di un'altra.</p><p>In PHP 7.0.X, è presente l'operatore spaceship (<code>&lt;=&gt;</code>), che restituisce -1, 0 o 1 quando $a è minore, uguale o maggiore di $b.</p><pre><code class="language-php">&lt;?php

echo 1 &lt;=&gt; 1; // 0
echo 1 &lt;=&gt; 2; // -1
echo 2 &lt;=&gt; 1; // 1</code></pre><h2 id="istruzioni-if-else-elseif"><strong>Istruzioni if/else/elseif</strong></h2><p>If/else sono istruzioni condizionali in cui, a seconda della veridicità di una condizione, vengono eseguite diverse azioni.</p><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> le parentesi <code>{}</code> sono necessarie solo se la condizione ha più di un'istruzione di azione; tuttavia è una buona pratica includerle a prescindere.</p><h3 id="istruzione-if"><strong>Istruzione if</strong></h3><pre><code class="language-text">&lt;?php

  if (condizione) {
    istruzione1;
    istruzione2;
  }</code></pre><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> puoi annidare quante istruzioni desideri in un blocco "if"; non sei limitato dai valori negli esempi.</p><h3 id="istruzione-if-else"><strong>Istruzione if/else</strong></h3><pre><code class="language-text">&lt;?php

  if (condizione) {
    istruzione1;
    istruzione2;
  } else {
    istruzione3;
    istruzione4;
  }</code></pre><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> l'istruzione <code>else</code> è opzionale.</p><h3 id="istruzione-if-elseif-else"><strong>Istruzione if/elseif/else</strong></h3><pre><code class="language-text">&lt;?php

  if (condizione1) {
    istruzione1;
    istruzione2;
  } elseif (condizione2) {
    istruzione3;
    istruzione4;
  } else {
    istruzione5;
  }</code></pre><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> <code>elseif</code> deve essere sempre scritta come una sola parola.</p><h3 id="istruzioni-if-else-annidate"><strong>Istruzioni if/else annidate</strong></h3><pre><code class="language-text">&lt;?php

  if (condizione1) {
      if (condizione2) {
        istruzione1;
        istruzione2;
      } else {
        istruzione3;
        istruzione4;
      }
  } else {
      if (condizione3) {
        istruzione5;
        istruzione6;
      } else {
        istruzione7;
        istruzione8;
      }
  }</code></pre><h3 id="condizioni-multiple"><strong>Condizioni multiple</strong></h3><p>È possibile usare più condizioni alla volta con gli operatori logici "or" (<code>||</code>), "xor", e "and" (<code>&amp;&amp;</code>).</p><p>Ad esempio:</p><pre><code class="language-text">&lt;?php

  if (condizione1 &amp;&amp; condizione2) {
    echo 'Entrambe le condizioni sono vere!';
  } elseif (condizione1 || condizione2) {
    echo 'Una condizione è vera!';
  } else (condizione1 xor condizione2) {
    echo 'Una condizione è vera e una è falsa!';
  }</code></pre><p><strong><strong><strong><strong>Not</strong></strong></strong>a<strong><strong><strong>:</strong></strong></strong></strong> è una buona pratica racchiudere le singole condizioni in parentesi quando ne hai più di una (può migliorare la leggibilità).</p><h3 id="sintassi-if-else-alternativa"><strong>Sintassi if/else alternativa</strong></h3><p>Esiste anche una sintassi alternativa per le strutture di controllo</p><pre><code class="language-php">  if (condizione1):
    istruzione1;
  else:
    istruzione2;
  endif;</code></pre><h3 id="operatori-ternari"><strong>Operatori ternari</strong></h3><p>Gli operatori ternari sono praticamente delle istruzioni if/else in una singola riga.</p><p>Ipotizziamo di dover mostrare "Ciao (nome utente)" se un utente è loggato, e "Ciao ospite" se non lo è.</p><p><strong>Istruzione i<strong>f/</strong>e<strong>lse</strong></strong>:</p><pre><code class="language-text">if($utente == !NULL {
  $messaggio = 'Ciao '. $utente; 
} else {
  $messaggio = 'Ciao ospite';
}</code></pre><p><strong>Operatore ternario</strong>:</p><pre><code class="language-text">$messaggio = 'Ciao '.($utente == !NULL ? $utente : 'ospite');</code></pre><h2 id="switch"><strong>Switch</strong></h2><p>In PHP, l'istruzione <code>switch</code> è molto simile all'istruzione <code>switch</code> in JavaScript <code>Switch</code> (vedi la <a href="https://www.freecodecamp.org/italian/news/switch-case-in-javascript-esempio-di-istruzione-switch/">guida a switch in JavaScript</a> come confronto). Consente di testare rapidamente casi con molte possibili condizioni diverse, con un codice molto più leggibile.</p><pre><code class="language-php">&lt;?php
	// Esempio di istruzione Switch
	switch ($i) {
    	case "free":
    	    echo "i è free";
    	    break;
    	case "code":
    	    echo "i è code";
    	    break;
    	case "camp":
    	    echo "i è camp";
    	    break;
    	default:
    	    echo "i è freecodecamp";
            break;
	}</code></pre><h3 id="break"><strong>Break</strong></h3><p>L'istruzione <code>break;</code> esce dallo switch e passa all'esecuzione del resto del codice dell'applicazione. Se non usi l'istruzione <code>break;</code> finirai per eseguire più casi e istruzioni. A volte ciò può essere desiderato e, in questi casi, potresti non includere l'istruzione <code>break;</code>.</p><p>Un esempio di questo comportamento può essere visto qui sotto:</p><pre><code class="language-text">&lt;?php
    $j = 0;

    switch ($i) {
        case '2':
            $j++;
        case '1':
            $j++;
            break;
        default:
            break;
    }</code></pre><p>Se $i = 1, il valore di $j sarà:</p><pre><code class="language-text">1</code></pre><p>Se $i = 2, il valore di $j sarà:</p><pre><code class="language-text">2</code></pre><p>Mentre break può essere omesso senza causare problemi in alcuni casi (vedi sotto)</p><pre><code class="language-text">&lt;?php
    switch ($i) {
        case '1':
            return 1;
        case '2':
            return 2;
        default:
            break;
     }</code></pre><p>è generalmente una buona pratica includerlo per questioni di leggibilità e sicurezza (vedi sotto):</p><pre><code class="language-text">&lt;?php
    switch ($i) {
        case '1':
            return 1;
            break;
        case '2':
            return 2;
            break;
        default:
            break;
     }</code></pre><h3 id="esempio"><strong>Esempio</strong></h3><pre><code class="language-php">&lt;?php
//inizializza un intero casuale nell'intervallo
$numeroDado = mt_rand(1, 6);

//inizializza
$testoNumero = "";

//chiama l'istruzione switch
  switch($numeroDado) 
  {
  case 1:
    $testoNumero = "Uno";
    break;
  case 2:
    $testoNumero = "Due";
    break;
  case 3:
  case 4:
    // case 3 e 4 andranno su questa riga
    $testoNumero = "Tre o Quattro";
    break;
  case 5:
    $testoNumero = "Cinque";
    echo $testoNumero;
    // break; //senza specificare break o return continuerà l'esecuzione al caso successivo.
  case 6:
    $testoNumero = "Sei";
    echo $testoNumero;
    break;
  default:
    $testoNumero = "sconosciuto";
  }
  
  //mostra il risultato
  echo 'Il dado mostra il numero '.$testoNumero.'.';

?&gt;</code></pre><h3 id="output"><strong>Output</strong></h3><pre><code class="language-text">se case è 1
&gt; Il dado mostra il numero Uno.

se case è 2
&gt; Il dado mostra il numero Due.

se case è 3
&gt; Il dado mostra il numero Tre o Quattro.

se case è 4
&gt; Il dado mostra il numero Tre o Quattro.

se case è 5
&gt; CinqueSeiIl dado mostra il numero Sei.

se case è 6
&gt; SeiIl dado mostra il numero Sei.

nessuno dei precedenti
&gt; Il dado mostra il numero sconosciuto.</code></pre><h2 id="loop"><strong>Loop</strong></h2><p>Quando hai bisogno di ripetere un'azione più volte, puoi usare un loop invece di aggiungere sempre lo stesso codice ancora e ancora.</p><p>Usare <code>break</code> all'interno di un loop ne ferma l'esecuzione.</p><h3 id="loop-for"><strong>Loop for</strong></h3><p>Itera un blocco di codice un numero specificato di volte.</p><pre><code class="language-php">&lt;?php
for($indice = 0; $indice &lt; 5; $indice ++)
{
    echo "Iterazione corrente ".$indice.".\n";
}
?&gt;

/*
Output:

Iterazione corrente 0.
Iterazione corrente 1.
Iterazione corrente 2.
Iterazione corrente 3.
Iterazione corrente 4.
*/</code></pre><h3 id="loop-while"><strong>Loop while</strong></h3><p>Itera un blocco di codice finché una condizione è vera.</p><pre><code class="language-php">&lt;?php
$indice = 10;
while ($indice &gt;= 0)
{
    echo "L'indice è ".$indice.".\n";
    $indice--;
}
?&gt;

/*
Output:

L'indice è 10.
L'indice è 9.
L'indice è 8.
L'indice è 7.
L'indice è 6.
L'indice è 5.
L'indice è 4.
L'indice è 3.
L'indice è 2.
L'indice è 1.
L'indice è 0.
*/</code></pre><h3 id="loop-do-while"><strong>Loop do... while</strong></h3><p>Esegue un blocco di codice una volta e poi continua a iterare se la condizione è vera.</p><pre><code class="language-php">&lt;?php
$indice = 3;
do
{
    // esegue questo almeno una volta
    echo "Indice: ".$indice.".\n"; 
    $indice --;
}
while ($indice &gt; 0);
?&gt;

/*
Output:

Indice: 3.
Indice: 2.
Indice: 1.
*/</code></pre><h3 id="loop-foreach"><strong>Loop foreach</strong></h3><p>Itera un blocco di codice per ogni valore all'interno di un array.</p><h2 id="funzioni"><strong>Funzioni</strong></h2><p>Una funzione è un blocco di istruzioni che può essere usato ripetutamente in un programma.</p><h3 id="funzione-semplice-chiamata"><strong>Funzione semplice + chiamata</strong></h3><pre><code class="language-php">function saluta() {
  return "Ciao!";
}

echo saluta();</code></pre><h3 id="funzione-semplice-parametro-chiamata"><strong>Funzione semplice + parametro + chiamata</strong></h3><pre><code class="language-php">function saluta_amico($amico) {
  return "Ciao " . $amico . "!";
}

echo saluta_amico('Tommy');</code></pre><h3 id="strtoupper-rende-tutti-i-caratteri-maiuscoli"><strong>strtoupper - Rende tutti i caratteri maiuscoli</strong></h3><pre><code class="language-php">function rendiMaiuscolo($nomi) {
  foreach($nomi as $i_simpson) {
    $MAIUSCOLO[] = strtoupper($i_simpson);
  }
  return $MAIUSCOLO;
}

$nomi = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(rendiMaiuscolo($nomi));</code></pre><h2 id="array-1"><strong>Array</strong></h2><p>Gli array sono come le variabili normali, ma contengono più valori in forma di una lista ordinata. Ciò può essere utile se hai più valori collegati tra loro, come una lista di nomi di studenti o una lista di città.</p><h3 id="tipi-di-array"><strong>Tipi di array</strong></h3><p>In PHP, esistono due tipi di array: array con indice e array associativi. Ognuno ha il suo utilizzo e ora vedremo come crearli.</p><h3 id="array-con-indice"><strong>Array con indice</strong></h3><p>Un array con indice è una lista di valori ordinati. A ognuno dei valori nell'array è assegnato un indice numerico. Gli indici degli array partono sempre da <code>0</code> per il primo valore e aumentano di 1.</p><pre><code class="language-php">&lt;?php
$lista_spesa = array("uova", "latte", "formaggio");
?&gt;</code></pre><p><code>$lista_spesa[0]</code> restituirà <code>"uova"</code>, <code>$lista_spesa[1]</code> restituirà <code>"latte"</code> e <code>$lista_spesa[2]</code> restituirà <code>"formaggio"</code>.</p><h3 id="array-associativi"><strong>Array associativi</strong></h3><p>Un array associativo è una lista di valori a cui si può accedere tramite una chiave, invece che con un indice numerico. La chiave può essere un qualsiasi valore ma deve essere unico nell'array.</p><pre><code class="language-php">&lt;?php
$voti_studenti = array("Joe" =&gt; "83", "Frank" =&gt; "93", "Benji" =&gt; "90");
?&gt;</code></pre><p><code>$voti_studenti['Joe']</code> restituirà <code>83</code>, <code>$voti_studenti['Frank']</code> restituirà <code>93</code> e <code>$voti_studenti['Benji']</code> restituirà <code>90</code>.</p><h3 id="array-multidimensionali"><strong>Array multidimensionali</strong></h3><p>Un array multidimensionale è un array che contiene altri array. Ti permette di creare strutture di dati che possono modellare un gruppo di dati molto complesso.</p><pre><code class="language-php">&lt;?php
$studenti = 
  array(
    array("nome" =&gt; "Joe", "voto" =&gt; 83, "cognome" =&gt; "Smith"),
    array("nome" =&gt; "Frank", "voto" =&gt; 92, "cognome" =&gt; "Barbson"),
    array("nome" =&gt; "Benji", "voto" =&gt; 90, "cognome" =&gt; "Warner")   
  );
?&gt;</code></pre><p>Ora puoi ottenere il <code>nome</code> del primo studente con:</p><pre><code class="language-php">$studenti[0]['nome']</code></pre><h3 id="ottenere-la-lunghezza-di-un-array-la-funzione-count-"><strong>Ottenere la lunghezza di un array - la funzione count()</strong></h3><p>La funzione <code>count()</code> è usata per restituire la lunghezza (il numero di elementi) di un array:</p><pre><code class="language-php">&lt;?php
$macchine = array("Volvo", "BMW", "Toyota");
echo count($macchine);
?&gt;</code></pre><h2 id="ordinare-gli-array"><strong>Ordinare gli array</strong></h2><p>PHP offre diverse funzioni per ordinare gli array. Di seguito, sono descritte le varie funzioni corredate di esempi.</p><h3 id="sort-"><strong>sort()</strong></h3><p>La funzione <code>sort()</code> ordina i valori di un array in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("free", "code", "camp");
sort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output</strong></strong>:</strong></strong></p><pre><code class="language-text">Array
(
    [0] =&gt; camp
    [1] =&gt; code
    [2] =&gt; free
)</code></pre><h3 id="rsort-"><strong>rsort()</strong></h3><p>La funzione <code>rsort()</code> ordina i valori di un array in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("free", "code", "camp");
rsort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output:</strong></strong></strong></strong></p><pre><code class="language-text">Array
(
    [0] =&gt; free
    [1] =&gt; code
    [2] =&gt; camp
)</code></pre><h3 id="asort-"><strong>asort()</strong></h3><p>La funzione <code>asort()</code> ordina un array associativo, secondo i suoi valori, in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("zero"=&gt;"free", "one"=&gt;"code", "two"=&gt;"camp");
asort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output:</strong></strong></strong></strong></p><pre><code class="language-text">Array
(
    [two] =&gt; camp
    [one] =&gt; code
    [zero] =&gt; free
)</code></pre><h3 id="ksort-"><strong>ksort()</strong></h3><p>La funzione <code>ksort()</code> ordina un array associativo, secondo le sue chiavi, in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("zero"=&gt;"free", "one"=&gt;"code", "two"=&gt;"camp");
ksort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output:</strong></strong></strong></strong></p><pre><code class="language-text">Array
(
    [one] =&gt; code
    [two] =&gt; camp
    [zero] =&gt; free
)</code></pre><h3 id="arsort-"><strong>arsort()</strong></h3><p>La funzione <code>arsort()</code> ordina un array associativo, secondo i suoi valori, in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("zero"=&gt;"free", "one"=&gt;"code", "two"=&gt;"camp");
arsort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output:</strong></strong></strong></strong></p><pre><code class="language-text">Array
(
    [zero] =&gt; free
    [one] =&gt; code
    [two] =&gt; camp
)</code></pre><h3 id="krsort-"><strong>krsort()</strong></h3><p>La funzione <code>krsort()</code> ordina un array associativo, secondo le sue chiavi, in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)</p><pre><code class="language-php">&lt;?php
$freecodecamp = array("zero"=&gt;"free", "one"=&gt;"code", "two"=&gt;"camp");
krsort($freecodecamp);
print_r($freecodecamp);
?&gt;</code></pre><p><strong><strong><strong><strong>Output:</strong></strong></strong></strong></p><pre><code class="language-text">Array
(
    [zero] =&gt; free
    [two] =&gt; camp
    [one] =&gt; code
)</code></pre><h2 id="moduli"><strong>Moduli</strong></h2><p>I moduli sono un modo con cui gli utenti inseriscono o selezionano dati da una pagina web. I moduli possono contenere dati così come consentire di recuperare le informazioni per un utilizzo successivo.</p><p>Per far funzionare un modulo in un linguaggio come PHP, servono alcuni attributi html fondamentali. Nella maggior parte dei casi, PHP fa uso delle super variabili globali 'post' e 'get' per ottenere i dati da un modulo.</p><pre><code class="language-html">&lt;html&gt;
&lt;body&gt;
  &lt;form method="get" action="target_proccessor.php"&gt;
      &lt;input type="search" name="search" /&gt;&lt;br /&gt;
      &lt;input type="submit" name="submit" value="Search" /&gt;&lt;br /&gt;
  &lt;/form&gt;
&lt;body&gt;
&lt;/html&gt;</code></pre><p>L'attributo <code>method</code> comunica al modulo il modo in cui inviare i dati. Poi, l'attributo <code>action</code> dice dove inviare i dati del modulo per l'elaborazione. L'attributo <code>name</code> è molto importante a dovrebbe essere unico, perché in PHP il valore di name funziona esattamente come identità del campo di input.</p><h2 id="verifica-degli-input-richiesti"><strong>Verifica degli input richiesti</strong></h2><p>PHP possiede alcune funzioni per verificare se degli input richiesti sono stati soddisfatti. Queste funzioni sono <code>isset</code>, <code>empty</code> e <code>is_numeric</code>.</p><h3 id="verificare-se-un-campo-stato-impostato"><strong>Verificare se un campo è stato impostato</strong></h3><p><code>isset</code> controlla se un campo è stato impostato oppure è vuoto. Esempio:</p><pre><code class="language-php">$nome = $_GET['nome']

if(isset($nome)){
  echo "Il campo nome è impostato". "&lt;br&gt;";
}
else{
  echo "Il campo nome non è impostato"."&lt;br&gt;";
}</code></pre><h2 id="gestione-degli-input-di-un-modulo"><strong>Gestione degli input di un modulo</strong></h2><p>Puoi ottenere input dalle variabili globali $<em><em>POST </em>e <em>$</em></em>GET.</p><pre><code class="language-text">$_POST["nome"] o $_GET['cognome']</code></pre> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
