Articolo originale: https://www.freecodecamp.org/news/the-best-php-examples/

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 sull'80% dei siti web di cui è noto il linguaggio lato server. Solitamente è utilizzato sui siti web per generare contenuti di pagine web dinamicamente. I casi di utilizzo comprendono:

  • siti e applicazioni web (scripting lato server)
  • scripting su riga di comando
  • applicazioni desktop (GUI)

È 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:

  • elaborare e salvare input utente da un modulo dati
  • impostare e lavorare con i cookie
  • impedire l'accesso ad alcune pagine di un sito

La piattaforma social più grande, Facebook è scritta usando PHP

Come funziona PHP?

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.

Questo processo è mostrato qui sotto:

PHP-server-model
Source: https://github.com/xeroxism/

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.

Il codice PHP è racchiuso tra i tag <?php e ?> e può essere incorporato nell'HTML.

Installazione

PHP può essere installato con o senza un server web.

GNU/Linux

Su distribuzioni GNU/Linux basate su Debian, puoi installarlo con:

sudo apt install php

Su Centos 6 o 7 puoi installarlo con:

sudo yum install php

Dopo l'installazione, puoi eseguire qualsiasi file PHP facendo semplicemente questo nel terminale:

php file.php

Puoi anche installare un server localhost per eseguire dei siti web PHP. Per installare il server web Apache:

sudo apt install apache2 libapache2-mod-php

Oppure puoi anche installare PHP, MySQL & il server web installando XAMPP (un pacchetto solution stack multi-piattaforma gratuito e open-source) o pacchetti simili come WAMP.

Framework PHP

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:

  • Non devi inventare la ruota ogni volta che crei un progetto, dato che molte cose vengono gestite per te
  • Sono generalmente ben strutturati in modo da aiutare nella separazione dei problemi
  • La maggior parte dei framework tende a seguire le migliori pratiche del linguaggio
  • Molti seguono il modello MVC (Model-View-Controller) così da separare il lato della presentazione dalla logica

Framework conosciuti

Sintassi di base

Gli script PHP possono essere posizionati ovunque in un documento, iniziano sempre con <?php e terminano con ?>. Inoltre, le istruzioni PHP terminano con un punto e virgola (;).

Ecco un semplice script che utilizza la funzione integrata echo per mostrare sulla pagina il testo "The Best PHP Examples":

<!DOCTYPE html>
<html>
<body>

<h1>Developer News</h1>

<?php echo "I migliori esempi di PHP"; ?>

</body>
</html> 

L'output sarà:

Developer News

I migliori esempi di PHP

Commenti

PHP supporta diversi modi di commentare:

  • Commenti su riga singola:
  • Commenti multi-riga:
<?php
  // Questo è un commento su riga singola
  
  # Puoi scrivere dei commenti su una sola riga così
?>
<?php
/*
Questo blocco di commento
occupa più 
righe
*/
?>

Case Sensitivity

Tutte le parole chiave, le classi e le funzioni NON sono sensibili alle maiuscole.

Nell'esempio qui sotto, tutte e tre le istruzioni echo sono valide:

<?php
ECHO "Ciao!<br>";
echo "Benvenuto su Developer News<br>";
EcHo "Leggi tutti gli articoli senza pubblicità<br>";
?>

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 $nome. $NOME e $NoMe sono trattate come variabili diverse:

<?php
$nome = "Quincy";
echo "Ciao! Il mio nome è " . $nome . "<br>";
echo "Ciao! Il mio nome è " . $NOME . "<br>";
echo "Ciao! Il mio nome è " . $NoMe . "<br>";
?>

Variabili

Le variabili sono il modo principale per memorizzare informazioni in un programma PHP.

Tutte le variabili in PHP iniziano con il simbolo del dollaro, come $nome_variabile. Per assegnare una variabile, usa l'operatore =, con il nome della variabile sulla sinistra e l'espressione da valutare sulla destra.

Sintassi:

<?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;
?>

Regole per le variabili PHP

  • Le dichiarazioni delle variabili iniziano con $, seguito dal nome della variabile
  • I nomi delle variabili possono iniziare solo con una lettera minuscola o maiuscola o un trattino basso (_)
  • I nomi delle variabili possono contenere solo lettere, numeri o trattini bassi (A-z, 0-9, and _). Altri caratteri speciali come + - % ( ) . & non sono validi
  • I nomi delle variabili sono sensibili alle maiuscole

Alcuni esempi di nomi di variabili consentiti:

  • $my_variable
  • $anotherVariable
  • $the2ndVariable

Valori predefiniti

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 sito della documentazione PHP per la lista completa.

  • $this
  • $_GET
  • $_POST
  • $_SERVER
  • $_FILES

Tipi di dato in PHP

Le variabili possono contenere diversi tipi di dato, come:

  • Stringa ("Ciao")
  • Intero (5)
  • Float (anche detto double) (1.0)
  • Booleano ( 1 o 0 )
  • Array ( array("Io", "sono", "un", "array") )
  • Oggetto
  • NULL
  • Risorsa

Stringhe

Una stringa è una sequenza di caratteri. Può essere un testo qualsiasi all'interno di virgolette (singole o doppie):

$x = "Hello!";
$y = 'Hello!';

Interi

Il tipo di dato intero è un numero non decimale tra -2,147,483,648 e 2,147,483,647.

Regole per gli interi:

  • devono avere almeno una cifra
  • non devono avere il punto decimale
  • possono essere positivi o negativi

$x = 5;

Float

Un float, o numero in virgola mobile, è un numero con un punto decimale.

$x = 5.01;

Booleani

Un booleano rappresenta due possibili stati: TRUE (vero) o FALSE (falso). I booleani sono spesso usati nelle istruzioni condizionali.

$x = true;
$y = false;

Array

Un array contiene valori multipli in una singola variabile.

$colori = array("Magenta", "Giallo", "Ciano");

NULL

Null è un tipo di dato speciale che ha soltanto il valore null. Le variabili possono essere dichiarate senza valore o svuotate, impostandone il valore su null. Inoltre, se una variabile è creata senza un valore, le viene automaticamente assegnato null.

<?php
// Assegna il valore "Ciao!" a "saluto"
$saluto = "Ciao!";

// Svuota il valore di "saluto" impostandolo su null
$saluto = null;
?>

Classi e Oggetti

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.

<?php
class Macchina {
    function Macchina() {
        $this->modello = "Tesla";
    }
}

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

// mostra le proprietà dell'oggetto
echo $Lightning->modello;
?>

Risorse PHP

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 getresourcetype() per vedere il tipo di risorsa.

<?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->doc) . "\n";

Stringhe

Una stringa è una serie di caratteri che può essere usata per memorizzare qualsiasi informazione di testo in una applicazione.

Esistono diversi modi per creare delle stringhe in PHP.

Virgolette singole

Delle stringhe semplici possono essere create usando le virgolette singole.

$nome = 'Joe';

Per includere una virgoletta singola in una stringa, usa il carattere di escape barra rovesciata (backslash).

$cognome = 'O\'Brian';

Virgolette doppie

Puoi creare delle stringhe anche usando le virgolette doppie.

$nome = "Joe";

Per includere una virgoletta doppia in una stringa, usa il carattere di escape barra rovesciata.

$citazione = "Mary disse, \"Voglio un toast,\" e poi andò via.";

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 \n, il tab \t e la barra rovesciata \\.

Puoi anche incorporare le variabili PHP in stringhe con virgolette doppie per aggiungere il loro valore alla  stringa.

$nome = 'Joe';
$saluto = "Ciao $nome"; // ora contiene la stringa "Ciao Joe"

Funzioni per stringhe

Trovare la lunghezza di una stringa

La funzione strlen() restituisce la lunnghezza di una stringa.

<?php
echo strlen("Developer News"); // l'output è 14
?>

Trovare il numero di parole in una stringa

La funzione strwordcount() restituisce il numero di parole in una  stringa:

<?php
echo str_word_count("Developer News"); // L'output è 2
?>

Invertire una stringa

La funzione strrev() inverte una stringa:

<?php
echo strrev("Developer News"); // L'output è sweN repoleveD
?>

Cercare del testo in una  stringa

La funzione strpos() ricerca del testo in una stringa:

<?php
echo strpos("Developer News", "News"); // L'ouput è 10
?>

Sostituire del testo in una stringa

La funzione str_replace() sostituisce del testo in una stringa:

<?php
echo str_replace("freeCodeCamp", "Developer", "freeCodeCamp News"); // L'output è Developer News
?>

Costanti

Le costanti sono un tipo di variabile in PHP. La funzione define() 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).

Visibilità

È importante sapere che, a differenza delle variabili, le costanti hanno SEMPRE una visibilità globale e vi si può accedere da qualsiasi funzione nello script.

<?php
define("freeCodeCamp", "Learn to code and help nonprofits", false);
echo freeCodeCamp;
>?

// Output: Learn to code and help nonprofits

Inoltre, quando crei una classe, puoi dichiarare delle costanti.

class Human {
  const TYPE_MALE = 'm';
  const TYPE_FEMALE = 'f';
  const TYPE_UNKNOWN = 'u'; // Quando l'utente non selezionato il genere
  
  .............
}

Nota: Se vuoi usare queste costanti all'interno della classe Human, puoi far loro riferimento come a self::NOME_COSTANTE. Se vuoi usarle fuori dalla classe, devi usare Human::NOME_COSTANTE.

Operatori

PHP contiene tutti i normali operatori che ti aspetteresti di trovare in un linguaggio di programmazione.

Un = singolo viene usato come operatore di assegnazione e == o === vengono usati come operatori di confronto.

I soliti < e > possono essere usati per il confronto e += può essere usato per aggiungere un valore e assegnarlo allo stesso tempo.

Importante è anche l'uso di . per concatenare stringhe e di .= per aggiungere una stringa alla fine di un'altra.

In PHP 7.0.X, è presente l'operatore spaceship (<=>), che restituisce -1, 0 o 1 quando $a è minore, uguale o maggiore di $b.

<?php

echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

Istruzioni if/else/elseif

If/else sono istruzioni condizionali in cui, a seconda della veridicità di una condizione, vengono eseguite diverse azioni.

Nota: le parentesi {} sono necessarie solo se la condizione ha più di un'istruzione di azione; tuttavia è una buona pratica includerle a prescindere.

Istruzione if

<?php

  if (condizione) {
    istruzione1;
    istruzione2;
  }

Nota: puoi annidare quante istruzioni desideri in un blocco "if"; non sei limitato dai valori negli esempi.

Istruzione if/else

<?php

  if (condizione) {
    istruzione1;
    istruzione2;
  } else {
    istruzione3;
    istruzione4;
  }

Nota: l'istruzione else è opzionale.

Istruzione if/elseif/else

<?php

  if (condizione1) {
    istruzione1;
    istruzione2;
  } elseif (condizione2) {
    istruzione3;
    istruzione4;
  } else {
    istruzione5;
  }

Nota: elseif deve essere sempre scritta come una sola parola.

Istruzioni if/else annidate

<?php

  if (condizione1) {
      if (condizione2) {
        istruzione1;
        istruzione2;
      } else {
        istruzione3;
        istruzione4;
      }
  } else {
      if (condizione3) {
        istruzione5;
        istruzione6;
      } else {
        istruzione7;
        istruzione8;
      }
  }

Condizioni multiple

È possibile usare più condizioni alla volta con gli operatori logici "or" (||), "xor", e "and" (&&).

Ad esempio:

<?php

  if (condizione1 && 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!';
  }

Nota: è una buona pratica racchiudere le singole condizioni in parentesi quando ne hai più di una (può migliorare la leggibilità).

Sintassi if/else alternativa

Esiste anche una sintassi alternativa per le strutture di controllo

  if (condizione1):
    istruzione1;
  else:
    istruzione2;
  endif;

Operatori ternari

Gli operatori ternari sono praticamente delle istruzioni if/else in una singola riga.

Ipotizziamo di dover mostrare "Ciao (nome utente)" se un utente è loggato, e "Ciao ospite" se non lo è.

Istruzione if/else:

if($utente == !NULL {
  $messaggio = 'Ciao '. $utente; 
} else {
  $messaggio = 'Ciao ospite';
}

Operatore ternario:

$messaggio = 'Ciao '.($utente == !NULL ? $utente : 'ospite');

Switch

In PHP, l'istruzione switch è molto simile all'istruzione switch in JavaScript Switch (vedi la guida a switch in JavaScript come confronto). Consente di testare rapidamente casi con molte possibili condizioni diverse, con un codice molto più leggibile.

<?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;
	}

Break

L'istruzione break; esce dallo switch e passa all'esecuzione del resto del codice dell'applicazione. Se non usi l'istruzione break; finirai per eseguire più casi e istruzioni. A volte ciò può essere desiderato e, in questi casi, potresti non includere l'istruzione break;.

Un esempio di questo comportamento può essere visto qui sotto:

<?php
    $j = 0;

    switch ($i) {
        case '2':
            $j++;
        case '1':
            $j++;
            break;
        default:
            break;
    }

Se $i = 1, il valore di $j sarà:

1

Se $i = 2, il valore di $j sarà:

2

Mentre break può essere omesso senza causare problemi in alcuni casi (vedi sotto)

<?php
    switch ($i) {
        case '1':
            return 1;
        case '2':
            return 2;
        default:
            break;
     }

è generalmente una buona pratica includerlo per questioni di leggibilità e sicurezza (vedi sotto):

<?php
    switch ($i) {
        case '1':
            return 1;
            break;
        case '2':
            return 2;
            break;
        default:
            break;
     }

Esempio

<?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.'.';

?>

Output

se case è 1
> Il dado mostra il numero Uno.

se case è 2
> Il dado mostra il numero Due.

se case è 3
> Il dado mostra il numero Tre o Quattro.

se case è 4
> Il dado mostra il numero Tre o Quattro.

se case è 5
> CinqueSeiIl dado mostra il numero Sei.

se case è 6
> SeiIl dado mostra il numero Sei.

nessuno dei precedenti
> Il dado mostra il numero sconosciuto.

Loop

Quando hai bisogno di ripetere un'azione più volte, puoi usare un loop invece di aggiungere sempre lo stesso codice ancora e ancora.

Usare break all'interno di un loop ne ferma l'esecuzione.

Loop for

Itera un blocco di codice un numero specificato di volte.

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

/*
Output:

Iterazione corrente 0.
Iterazione corrente 1.
Iterazione corrente 2.
Iterazione corrente 3.
Iterazione corrente 4.
*/

Loop while

Itera un blocco di codice finché una condizione è vera.

<?php
$indice = 10;
while ($indice >= 0)
{
    echo "L'indice è ".$indice.".\n";
    $indice--;
}
?>

/*
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.
*/

Loop do... while

Esegue un blocco di codice una volta e poi continua a iterare se la condizione è vera.

<?php
$indice = 3;
do
{
    // esegue questo almeno una volta
    echo "Indice: ".$indice.".\n"; 
    $indice --;
}
while ($indice > 0);
?>

/*
Output:

Indice: 3.
Indice: 2.
Indice: 1.
*/

Loop foreach

Itera un blocco di codice per ogni valore all'interno di un array.

Funzioni

Una funzione è un blocco di istruzioni che può essere usato ripetutamente in un programma.

Funzione semplice + chiamata

function saluta() {
  return "Ciao!";
}

echo saluta();

Funzione semplice + parametro + chiamata

function saluta_amico($amico) {
  return "Ciao " . $amico . "!";
}

echo saluta_amico('Tommy');

strtoupper - Rende tutti i caratteri maiuscoli

function rendiMaiuscolo($nomi) {
  foreach($nomi as $i_simpson) {
    $MAIUSCOLO[] = strtoupper($i_simpson);
  }
  return $MAIUSCOLO;
}

$nomi = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(rendiMaiuscolo($nomi));

Array

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à.

Tipi di array

In PHP, esistono due tipi di array: array con indice e array associativi. Ognuno ha il suo utilizzo e ora vedremo come crearli.

Array con indice

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 0 per il primo valore e aumentano di 1.

<?php
$lista_spesa = array("uova", "latte", "formaggio");
?>

$lista_spesa[0] restituirà "uova", $lista_spesa[1] restituirà "latte" e $lista_spesa[2] restituirà "formaggio".

Array associativi

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.

<?php
$voti_studenti = array("Joe" => "83", "Frank" => "93", "Benji" => "90");
?>

$voti_studenti['Joe'] restituirà 83, $voti_studenti['Frank'] restituirà 93 e $voti_studenti['Benji'] restituirà 90.

Array multidimensionali

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.

<?php
$studenti = 
  array(
    array("nome" => "Joe", "voto" => 83, "cognome" => "Smith"),
    array("nome" => "Frank", "voto" => 92, "cognome" => "Barbson"),
    array("nome" => "Benji", "voto" => 90, "cognome" => "Warner")   
  );
?>

Ora puoi ottenere il nome del primo studente con:

$studenti[0]['nome']

Ottenere la lunghezza di un array - la funzione count()

La funzione count() è usata per restituire la lunghezza (il numero di elementi) di un array:

<?php
$macchine = array("Volvo", "BMW", "Toyota");
echo count($macchine);
?>

Ordinare gli array

PHP offre diverse funzioni per ordinare gli array. Di seguito, sono descritte le varie funzioni corredate di esempi.

sort()

La funzione sort() ordina i valori di un array in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)

<?php
$freecodecamp = array("free", "code", "camp");
sort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [0] => camp
    [1] => code
    [2] => free
)

rsort()

La funzione rsort() ordina i valori di un array in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)

<?php
$freecodecamp = array("free", "code", "camp");
rsort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [0] => free
    [1] => code
    [2] => camp
)

asort()

La funzione asort() ordina un array associativo, secondo i suoi valori, in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
asort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [two] => camp
    [one] => code
    [zero] => free
)

ksort()

La funzione ksort() ordina un array associativo, secondo le sue chiavi, in ordine alfabetico/numerico ascendente (ovvero A, B, C, D, E... 1, 2, 3, 4, 5...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
ksort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [one] => code
    [two] => camp
    [zero] => free
)

arsort()

La funzione arsort() ordina un array associativo, secondo i suoi valori, in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
arsort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [zero] => free
    [one] => code
    [two] => camp
)

krsort()

La funzione krsort() ordina un array associativo, secondo le sue chiavi, in ordine alfabetico/numerico discendente (ovvero Z, Y, X, W, V... 5, 4, 3, 2, 1...)

<?php
$freecodecamp = array("zero"=>"free", "one"=>"code", "two"=>"camp");
krsort($freecodecamp);
print_r($freecodecamp);
?>

Output:

Array
(
    [zero] => free
    [two] => camp
    [one] => code
)

Moduli

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.

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.

<html>
<body>
  <form method="get" action="target_proccessor.php">
      <input type="search" name="search" /><br />
      <input type="submit" name="submit" value="Search" /><br />
  </form>
<body>
</html>

L'attributo method comunica al modulo il modo in cui inviare i dati. Poi, l'attributo action dice dove inviare i dati del modulo per l'elaborazione. L'attributo name è molto importante a dovrebbe essere unico, perché in PHP il valore di name funziona esattamente come identità del campo di input.

Verifica degli input richiesti

PHP possiede alcune funzioni per verificare se degli input richiesti sono stati soddisfatti. Queste funzioni sono isset, empty e is_numeric.

Verificare se un campo è stato impostato

isset controlla se un campo è stato impostato oppure è vuoto. Esempio:

$nome = $_GET['nome']

if(isset($nome)){
  echo "Il campo nome è impostato". "<br>";
}
else{
  echo "Il campo nome non è impostato"."<br>";
}

Gestione degli input di un modulo

Puoi ottenere input dalle variabili globali $POST e $GET.

$_POST["nome"] o $_GET['cognome']