Guida pratica-introduttiva al PHP

Vitriol

Utente Bronze
2 Luglio 2018
97
3
20
35
Ultima modifica:
Premessa
Questa guida vuole essere un punto di partenza, una lanterna che permetta al principiante di acquisire le basi fondamentali per comprendere cosa studiare e come cercare in autonomia ciò che non è ancora in grado di fare.
Esistono numerosi portali per chiedere e ricevere domande inerenti alla programmazione PHP e non solo. Puoi chiedere qui sotto, oppure eseguire ricerche personali su Google, le quali ti porteranno probabilmente a StackOverflow... Uno strumento che ti accompagnerà sempre.

Set-up
(Punto zero) Si può scrivere codice PHP anche sul Blocco Note, ma perché complicarsi la vita? Allo stesso modo, non amo Editor troppo complessi e macchinosi. Consiglio Notepad++, scaricabile gratuitamente e costantemente aggiornato.
Questo editor sarà il programma grazie al quale potrai scrivere codice (PHP e non).

(Punto uno) Il PHP è un linguaggio lato-server; per poter osservare il tuo script avrai perciò bisogno di un... server!
Sono essenzialmente due le alternative per far girare il tuo codice: server locale o servizio di hosting.
Dato che un hosting gratuito, ad esempio Altervista, è semplice e intuitivo, mi occuperò della configurazione di un server locale :asd:.
Per prima cosa, dato che ho sempre lavorato (localmente) con questo programma, vi consiglio XAMPP (gratuito e facilmente reperibile). Scarica, installa e cerca la cartella htdocs; questa è la cartella base nella quale inseriremo i nostri files (PHP e non) per poterli poi aprire attraverso il Browser. La cartella htdocs sarà inizialmente piena di cianfrusaglie: CANCELLA TUTTO, BRUTALMENTE!

(Punto due) Ci siamo! Nel pannello XAMPP, noterai vari bottoni. L'unico che al momento ti serve è lo 'Start' relativo al servizio 'Apache'. Premuto il bottone, la scritta Apache si colorerà di verde. Se Dio ti odia non riuscirai ad avviare il servizio: nessun problema, il Signore non odia solo te. Alcuni programmi possono occupare la porta 80; per caso hai Skype aperto? Chiudilo e riprova.

Perfetto, adesso sei davvero a buon punto: apri il Browser e, nella barra degli indirizzi, digita 'http://localhost/' oppure '127.0.0.1' è indifferente. Questo è l'indirizzo del tuo hosting locale, da qui potrai vedere, testare (bestemmiare) tutte le tue opere d'arte web!

Basi del PHP
(Punto zero) Creiamo il primo script in PHP! Apri Notepad++ e salva il nuovo documento in formato .php nella cartella htdocs. Ti consiglio di chiamarlo 'index.php', con questo nome il file viene designato come pagina principale visitando l'indirizzo locale 'http://localhost/'.

(Punto uno) Per scrivere uno script in PHP è necessario racchiudere il codice entro due tag, ovvero:
PHP:
<?php
//codice
?>

Scrivere una frase in PHP è semplice: utilizziamo la funzione echo.
PHP:
<?php
echo 'Ciao Inforge!';
?>
Avrai notato che al termine della riga di codice ho inserito il punto e virgola. È necessario inserirlo (nella maggior parte dei casi) alla fine di ogni riga, altrimenti il codice non funzionerà!

(Punto due) Le variabili sono una parte fondamentale nella programmazione tout court; il PHP è ottimale sotto questo punto di vista in quanto non è richiesto di specificare il tipo della variabile (intero, stringa, double...). Vediamo un semplice esempio:
PHP:
<?php
$variabile1 = 10;
echo $variabile1;

echo '<br>';

$variabile1 = 'Ciao!';
echo $variabile1;
?>
Questo script genera una variabile $variabile1 alla quale assegna un valore intero di 10. A questo punto viene stampata a schermo questa variabile. Con un altro echo contenente il tag html <br> inseriamo la spaziatura di un rigo. Infine, viene assegnato un nuovo valore alla stessa variabile, questa volta una String 'Ciao!', e stampata a schermo la variabile aggiornata.
Da notare, come scritto sopra, che non è stato mai specificato il tipo della variabile: il PHP è simpatico e si sa arrangiare!
Per riassumere: le variabili si specificano con il simbolo $ (dollaro) seguìto, senza spaziature, dal nome che si vuole per la variabile (es. $miao), il valore si assegna alla variabile facendola seguire dal simbolo = (uguale) ed il dato che si vuole allocare nella variabile (es. $miao = 12).

Le basi sono state gettate!

Le condizioni
(Punto zero) "Se sei bello, ti tirano le pietre!" può essere considerata una condizione, e perciò, convertita in script PHP. Vediamo come...

(Punto uno) Le funzioni condizionali permettono di eseguire una azione sotto determinate condizioni, ecco un esempio:
PHP:
<?php
$sonoIo = 'bello';

if($sonoIo == 'bello') {
     echo 'Ti tiro le pietre!';
}

?>
Eh sì, le parentesi graffe sono entrate prepotentemente in scena!
Ma... In cosa consiste questo script? Semplice: inizializziamo la variabile e gli assegniamo il valore 'bello'; nell'if, all'interno delle parentesi tonde inseriamo la condizione da verificare (in questo caso controllo se la variabile è uguale a 'bello' - perché il doppio uguale (==)? Perché, come abbiamo visto, con l'uguale singolo si assegna un valore alla variabile, noi invece qui vogliamo soltanto eseguire un controllo).
In seguito, apriamo una parentesi graffa e andiamo a capo (dopo la graffa non va inserito il punto e virgola), Notepad++ inserirà un rientro automatico che renderà il codice più ordinato. Tra le graffe inseriamo il codice che vogliamo eseguire nel caso la condizione si verifichi.

Ecco la lista degli operatori comparativi principali utilizzabili negli If Statements:
> [maggiore]
< [minore]
>= [maggiore o uguale]
<= [minore o uguale]
!= [diverso]
== [uguale]

Un altro semplice esempio:
PHP:
<?php
$aaa = 10;
$bbb = 20;

if($aaa + $bbb == 30) {
     echo 'La somma è 30!';
}
?>
Come puoi vedere, possono essere fatte anche operazioni tra variabili all'interno dell'if (+, -, /, %, *), puoi approfondire questi operatori eseguendo una semplice ricerca su Google.

Esercizio
Crea uno script per verificare che la somma tra due variabili sia maggiore di 50 e, in questo caso, stampi a schermo il messaggio 'La somma è maggiore di 50!', altrimenti, il messaggio 'La somma non è maggiore di 50!'.
TIP: L'altrimenti corrisponde a else nel linguaggio PHP. Puoi aiutarti con una ricerca Google per completare l'esercizio!
PHP:
<?php
$aaa = 10;
$bbb = 40;

if($aaa + $bbb > 50) {
     echo 'La somma è maggiore di 50!';
}else{
     echo 'La somma non è maggiore di 50!';
}

?>
Perfetto! Con questo esercizio abbiamo scoperto l'esistenza dell'utilissimo else. L'else è un altrimenti generale, ovvero copre tutti i casi che non rientrano nell'if principale.

Esiste anche un altro tipo di else, l'elseif (altrimenti se), che accetta condizioni precise, vediamone una applicazione concreta:
PHP:
<?php
$aaa = 10;
$bbb = 40;

if($aaa + $bbb > 50) {
     echo 'La somma è maggiore di 50!';
}elseif($aaa + $bbb <= 50){
     echo 'La somma è minore o uguale a 50!';
}
?>
In questo caso un else generale non avrebbe senso perché tutti i casi possibili sono stati coperti dall'if e dall'elseif.

Padroneggiare gli If Statements apre già grandi possibilità!

PHP + HTML
(Punto zero) Come accennato in precedenza, il PHP è generalmente utilizzato insieme ad un linguaggio di Markup, nel nostro caso l'HTML.

(Punto uno) Essendo questa guida incentrata sul PHP, darò per scontato che tu conosca le basi dell'html.
La funzione principale che l'implementazione tra HTML e PHP garantisce è quella della ricezione ed elaborazione dei dati mediante form (html) - un esempio noto è quello dei login o delle registrazioni; in generale sono sufficienti un input di testo ed un bottone di invio per comporre un form html.

Vediamo in seguito come creare un form basilare nel quale poter immettere il nostro nome e, premendo un bottone, ricevere un testo di benvenuto personalizzato...
[index.php]
HTML:
<html>
  <body>
    <form action='invio.php' method='POST'>
      <input type='text' name='mionome'>
      <input type='submit' value='Invia'>
    <\form>
  <\body>
<\html>

[invio.php]
PHP:
<?php
if(empty($_POST['mionome']) == false){
     $nome = $_POST['mionome'];
     echo 'Ciao ' . $nome; 
}else{
     echo 'Non è presente un nome!';
}
?>
Nella pagina invio.php ci sono nuovi elementi da analizzare.
Lo script è composto interamente da un if-else che racchiude al suo interno alcune particolarità...
(1) La funzione $_POST['...'] è necessaria per gestire i dati inviati tramite form html; all'interno delle quadre, tra virgolette (o apostrofi) inseriamo il name assegnato all'input nel form html (<input type='text' name='mionome'>). Questo ci permetterà di ricevere (e memorizzare) il dato immesso e inviato dall'utente.
È disponibile, oltre al POST, anche il metodo GET, puoi approfondire questo elemento cercando su Google.
(2) La funzione empty(...), come si può intuire dal nome, verifica se un elemento è vuoto e, in tal caso, restituisce il valore true; se non è vuoto restituirà il valore false. Questo tipo di output si dice booleano (true/false).
Dichiarato ciò, possiamo analizzare l'intero script. Nell'if verifichiamo che il POST 'mionome' non sia vuoto. Se il POST è pieno [empty(...) == false], lo script procede ad eseguire il codice tra le graffe dell'if.
Qui viene assegnato alla variabile $nome il valore postato; subito dopo viene stampato a schermo il testo 'Ciao ' seguito da un punto, con il quale si uniscono le stringhe (es. $completo = $parte1 . $parte2), seguito dalla variabile $nome che ora contiene il nome postato tramite il form html.
Chiusa la graffa dell'if c'è un else che copre tutti gli altri casi (nello specifico, se empty risulta true, ovvero se è stato inviato un input vuoto). In questo caso viene stampato a schermo un messaggio d'errore con un semplice echo.
Esistono numerose funzioni predefinite in PHP, approfondisci con una ricerca personale. Ti consiglio questo link: https://it.m.wikibooks.org/wiki/PHP/Programmazione/Funzioni_di_base

La parte più complessa, inizialmente, è la gestione delle parentesi tonde negli if complessi. Per facilitarti puoi inserire spazi prima e dopo le parentesi [es. if( empty( $_POST['valore'] ) ){...}]

Esercizio
Crea un form con due input numerici più un bottone di invio. Crea uno script per gestire i dati inviati dal form, dovrà sommare i due input ricevuti e stampare la somma, se uno o entrambi gli input sono vuoti, restituire un testo di errore.
TIP: L'input numerico, in HTML5, corrisponde al type='number'.
Puoi consultare l'esempio precedente ed utilizzare Google per completare l'esercizio!
[index.php]
HTML:
<html>
  <body>
    <form action='invio.php' method='POST'>
      <input type='number' name='num1'>
      <input type='number' name='num2'>
      <input type='submit' value='Somma'>
    <\form>
  <\body>
<\html>
[invio.php]
PHP:
<?php
if(empty($_POST['num1']) == false && empty($_POST['num2']) == false ){
     $numero1 = $_POST['num1'];
     $numero2 = $_POST['num2'];
     $somma = $numero1 + $numero2;
     echo 'Somma: ' . $somma; 
}else{
     echo 'Inserisci i due numeri!';
}
?>
L'esercizio non era complesso, ma prevedeva un elemento non ancora visto: l'operatore AND (&&). Questo operatore, insieme a OR (||) è necessario per inserire più di una condizione all'interno dell'if (o dell'elseif). Di seguito lo schema riassuntivo:
condizione1 && condizione2 (devono verificarsi entrambe le condizioni)
condizione1 || condizione2 (deve verificarsi almeno una delle due condizioni)

Conclusione
In questa guida non sono stati trattati numerosi elementi del linguaggio PHP, che ti invito, con il tempo, a studiare in modo autonomo; tra questi i più importanti sono:
- Funzioni personalizzate
- Classi
- Inclusione files
- Gestione database mysqli
Sono tutti elementi per un programmatore che ha già acquisito le basi del linguaggio, perciò ti invito, per prima cosa, a fare tuoi gli insegnamenti di questa guida e, in seguito, a porti come obiettivo la realizzazione di un progetto complesso ricercando sul web le soluzioni ai vari impedimenti e problemi che incontrerai durante la realizzazione del tuo lavoro.

Se la guida ti è stata utile, non esitare a mettere un Mi Piace! :frog-gun: