Se ti è capitato di seguire il corso JavaScript, il linguaggio dinamico del web, con questo hai scoperto che il codice di questo linguaggio viene eseguito direttamente all’interno del browser.
A differenza di quanto detto nella lezione precedente, quando scriviamo in JavaScript non c’è alcun interprete sul server che deve comprendere il codice che scriviamo, se il codice è corretto viene eseguito nel browser altrimenti vengono mostrati degli errori.
Con il PHP la situazione è leggermente diversa perché quando ci sono degli errori, se l’intero codice HTML della pagina è generato dal PHP spesso si rischia di visualizzare soltanto delle pagine bianche.
Vedremo nelle future lezioni come dare un senso a queste pagine e arricchirle (almeno) di messaggi di errore che ci aiuteranno a comprendere che cosa non sta funzionando nel codice; ma devo ammettere che nella sua configurazione standard possiamo vivere delle esperienze alquanto brutte.
Non voglio certo scoraggiarti nell’uso di questo linguaggio dato che viene utilizzato moltissimo sul web ed è in grado di aiutarci a realizzare soluzioni interessanti, sopratutto se lo colleghiamo a un database.
Quello che voglio fare è metterti alla luce dei possibili problemi che potrai incontrare durante il tuo apprendimento, rassicurarti e farti capire che andremo ad analizzare assieme molti di questi problemi. Se poi mi dovesse essere sfuggito qualcosa ricorda che la nostra community è a tua disposizione e non vediamo l’ora di aiutarti!
Prima di iniziare
Adesso dovrebbe essere tutto abbastanza chiaro, le differenze con il linguagio JavaScript (che magari hai già conosciuto) dovrebbero essere ben delineate e sei pronto a proseguire iniziando a sporcarti un po’ le mani con un po’ di PHP.
Siamo sicuri?
Personalmente io posso dire di sì, so che il mio sistema è stato configurato a puntino per poter proseguire con questo corso, ma cosa mi dici del tuo? Hai installato una delle soluzioni L/X/MAMP che ti ho suggerito nella lezione scorsa? Vogliamo essere sicuri?
Allora la prima cosa che devi fare è identificare la cartella all’interno della quale verranno eseguiti i tuoi file .php
.
Per fare questo puoi controllare nelle impostazioni della soluzione AMP di tua preferenza, qua sotto vedi uno screenshot di MAMP, oppure consultare il file httpd.conf
della tua installazione Apache e cercare la stringa DocumentRoot
grazie alla quale potrai scoprire quale sia il percorso alla tua cartella dalla quale potrai far interpretare il tuo codice PHP.

Se ti stai chiedendo perché sul tuo sistema è presente una singola cartella dalla quale potrai far interpretare il codice PHP diciamo principalmente che in questo modo possiamo far concentrare Apache sul controllo dei file presenti all’interno.
Scopriremo in altri corsi dedicati alla configurazione di un server web che in alcuni casi è possibile aggiungere nuove cartelle, ma questo esula dagli scopi del nostro corso.
Tornando al nostro esempio che ci fa capire se il codice PHP viene interpretato o meno, nella cartella impostata come DocumentRoot
(che nel mio sistema è /Users/abarghigiani/Desktop/apprendi-php
) crea un file test.php
e inserisci:
<?php phpinfo(); ?>
Ci sarebbe molto da spiegare in queste sole tre righe di codice ma ti chiedo di essere paziente perché a breve analizzeremo tutto.
Intanto ti chiedo di salvare il file e puntare il tuo browser su http://localhost/test.php
. Se tutto ha funzionato correttamente, il tuo server web è stato configurato come si deve dovresti vedere una schermata simile a questa:

Sono sicuro che le informazioni contenute dalla tua pagina saranno leggermente diverse dalle mie, e questo è dovuto dal fatto che la tua configurazione è leggermente diversa da quella presente nel mio sistema; ma la cosa non cambia: il tuo PHP sta funzionando alla grande!
Senza entrare troppo nel dettaglio diciamo che quello che abbiamo fatto è stato chiedere al nostro server Apache delle informazioni sulla configurazione del nostro interprete PHP, adesso è giunto il momento di capire veramente come tutto questo sia stato possibile.
Apriamo e chiudiamo il PHP
Facendo riferimento al blocco di codice PHP che hai appena creato potrebbe esseri sorta la domanda: ma com’è possibile che con tre righe di codice abbia ottenuto un’intera pagina HTML? Con degli stili CSS preimpostati per giunta!
La risposta rapida a questo tuo quesito è: perché questa è una delle bellezze del PHP!
Da una singola richiesta sei stato in grado di ottenere diverse tabelle HTML che hanno fornito struttura e stile alla pagina generata, non è una cosa fantastica?
Dal mio punto di vista è addirittura affascinante perché molte informazioni che sono state mostrate a video non le conosciamo neanche. Quello che abbiamo fatto è stato richiedere al PHP installato sul nostro server web alcune informazioni riguardo la sua configurazione e l’interprete è stato in grado di organizzarle in modo ordinato all’interno di una tabella.
Se sei stato attento o semplicemente curioso, avrai nostato che nell’esempio di codice precedente non ho aperto l’elemento radice di qualsiasi pagina HTML, l’elemento <html>
. Eppure la pagina che è stata mostrata nel browser è stata correttamente interpretata e visualizzata.
Quello di cui sei stato testimone è una delle funzionalità base del PHP che ci permetterà di risparmiare un sacco di codice e di evitare ripetizioni inutili; nonché ridurre la possibilità di fare errori sfruttando la potenza di calcolo del nostro stesso server web.
Per essere in grado di padroneggiare tutto questo potere è necessario conoscerne le sue strutture perché come ci ricorda una vecchia pubblicità della Pirelli: la potenza è nulla senza controllo.
Proprio per riconquistare un po’ di questo controllo è giusto scoprire quali siano le caratteristiche interessanti di questo linguaggio e come sia possibile inserirlo all’interno delle nostre pagine.
Dagli esempi precedenti dovrebbe essere chiaro comprendere che per interpretare il linguaggio PHP un server web ha bisogno di un determinato tipo di file, ha bisogno di trovare un file con estensione .php
.
Se provi a inserire lo stesso codice all’interno di un file con estensione .html
o .htm
non otterrai lo stesso risultato, anzi la risposta del server web sarà semplicemente non mostrare niente.
La mia frase precedente è sbagliata, a essere onesto, se controlli il codice della pagina noterai che al suo interno è presente il codice inserito, ma non viene eseguito.
Questo perché, senza la giusta estensione non potrai far capire all’interprete PHP quali sono le tue intenzioni.
Fatto questo chiarimento, cerchiamo di capire come inserire il codice PHP all’interno di una pagina.
Per fare questo è necessario dire al server web da dove iniziamo a inserire il codice PHP e dove questo termina, osservando il codice precedentemente analizzato dovrebbe essere chiaro che con <?php
stiamo dicendo all’interprete che desideriamo inserire codice PHP e con ?>
dichiariamo che abbiamo terminato il suo inserimento.
<?php //Inserisco codice PHP ?>
Come puoi notare, la colorazione del mio codice fornisce un colore diverso alla stringa //Inserisco codice PHP
e lo fa perché questo è un commento.
I commenti sono utili per lasciare dei riferimenti sul codice inserito e come scoprirai nella lezione 6 di questo stesso corso, sono utili anche per creare la documentazione del nostro progetto.
La cosa bella è che non siamo obbligati ad aprire e chiudere il PHP soltanto una volta all’interno di una pagina, ma possiamo farlo molte volte e questo ci permetterà di aggiungere un ordine maggiore all’interno del nostro codice; sopratutto ci permetterà di interagire meglio con la sintassi HTML.
<?php //Prima porzione codice PHP ?> <?php //Seconda porzione codice PHP ?>
Sono sicuro che al momento questa possibilità non sembra molto utile, ma ti invito ad attendere la prossima sezione della lezione dove andremo a chiarire meglio questi aspetti.
La cosa importante che volevo farti capire è che l’interprete PHP è in grado di comprendere questo linguaggio soltanto se inserito all’interno di questi elementi così come nell’HTML è necessario aprire e chiudere il tag <p>
per far capire al browser che il testo contenuto fa parte di un paragrafo.
Se scriviamo qualcosa del genere non sarà reputato un errore ma semplicemente non vedremo le stesse informazioni che abbiamo consultato precedentemente e nel nostro browser sarà presente la stringa phpinfo();
:
<?php //Blocco PHP vuoto ?> phpinfo();
Mescola PHP e HTML
Ora che sai che per far interpretare il codice PHP dal server è necessaio utilizzare il tag di apertura (<?php
) e quello di chiusura (?>
) è giunto il momento di scoprire come sia possibile fornire struttura alla nostra pagina web.
Facciamo un piccolo salto di conoscenze PHP e andiamo a utilizzare il primo costrutto di questo linguaggio: echo
.
Con questo ti sarà possibile mostrare nella pagina le stringhe di testo includendo anche gli elementi HTML necessari, facciamo subito un esempio:
<?php echo "<html>"; echo "<head>"; echo "<title>La mia prima pagina PHP</title>"; echo "</head>"; echo "<body>"; echo "<p>Tutto il codice HTML è stato inserito con il PHP.</p>"; echo "</body>"; echo "</html>"; ?>
Come puoi vedere tu stesso il codice di questa pagina risulta molto complicato e come ben sai questa non è la via più sicura per diventare un bravo sviluppatore, le costanti ripetizioni di codice sono potenziali errori che ci attendono a ogni battuta e un bravo sviluppatore dovrebbe applicare il più possibile la logica DRY (Don’t Repeat Yourself).
Ma quest’esempio mi è servito a fissare anche un altro punto: con il PHP possiamo generare codice HTML infatti se hai provato a visualizzare il sorgente della pagina ti sarai accorto che al posto delle varie istruzioni echo
è presente soltanto del codice HTML.
Questo succede perché una volta che il codice PHP viene interpretato viene completamente rimosso dalla pagina generata e lascia posto soltanto al linguaggio standard che fornisce la struttura alle nostre pagine: il linguaggio HTML.
Però come appena dimostrato, utilizzare il PHP per generare codice HTML è alquanto complicato; vediamo un po’ come sia possibile unire le caratteristiche del primo con la struttura del secondo.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title><?php echo "La mia prima pagina PHP"; ?></title> </head> <body> <p> <?php echo "Tutto il codice HTML è stato inserito con il PHP."; ?> </p> </body> </html>
Ecco forse il modo più classico per utilizzare il PHP fornendogli la struttura che soltanto il linguaggio HTML è in grado di dare.
Unendo i concetti di apertura e chiusura a quello della loro riusabilità siamo stati in grado di creare una pagina PHP con una struttura HTML di partenza che ci permette di mescolare senza alcuno sforzo questi due potenti linguaggi.
Spero che adesso sia più chiaro il motivo per il quale è possibile aprire e chiudere porzioni di pagina all’interno dei quali inserire le nostre istruzioni PHP.
Capisco subito che l’esempio precedente non è molto chiaro perché quello che è stato inserito attraverso il PHP poteva essere tranquillamente inserito come stringa HTML. Ripeto: mi è servito soltanto come esempio per dimostrare la possibilità di far interagire questi due linguaggi; cosa veramente molto comune anche all’interno di CMS come WordPress.
Però in questa lezione ti ho promesso di parlare di sintassi e a parte i tag di apertura e chiusura del linguaggio PHP abbiamo visto ben poco. Cerchiamo subito di correggere questa tendenza andando ad analizzare da vicino una caratteristica fondamentale di questo linguaggio.
Come si conclude un comando in PHP
Ti ho già detto che non voglio entrare nel dettaglio e analizzare il costrutto echo
e le similitudini che questo ha con altre espressioni che possiamo creare con il PHP, ma allo stesso tempo mi trovo costretto a continuare la lezione prendendolo come esempio perché grazie a questo possiamo mettere in luce delle caratteristiche uniche di questo linguaggio.
Abbiamo detto che il PHP è un linguaggio interpretato dal motore presente all’interno del server web, giusto?
Ebbene, questo motore non è molto intelligente e ha bisogno di sapere quando termina un’istruzione e quando ne inizia un’altra.
Se hai osservato la sintassi di echo
avrai notato che tutte le stringhe che stampiamo nella pagina HTML terminano con un ;
però questo non viene mostrato nella pagina HTML generata.
Ecco, il punto e virgola è proprio il carattere che il motore PHP attende per poter interrompere l’esecuzione di quel dato comando e passare oltre.
Se questo carattere non viene inserito potremmo ricevere un messaggio di errore di questo tipo:

Riconosco che questo non sia uno dei messaggi più semplici da comprendere e verso la fine di questo corso andremo anche a modificare la configurazione del nostro interprete per migliorare questo aspetto, ma ci tengo a farti notare che ci dice che si stava aspettando (expecting) una ,
o almeno un ;
mentre invece non trova niente di questo ma trova una nuova istruzione echo
.
Questo conferma ancora una volta la mia idea che i computer sono stupidi.
Magari sono anche in grado di eseguire calcoli matematici alla velocità della luce, ma quando si tratta di logica lasciano molto a desiderare…
Comunque sia, non voglio certo mettermi a offendere il PHP o i computer, che comunque ci permettono di realizzare moltissime cose; piuttosto vorrei farti capire che quando utilizziamo una determinata sintassi abbiamo l’obbligo di essere precisi.
Un altro tipo di errore che potremmo incontrare è relativo all’utilizzo delle virgolette. Negli esempi precedenti abbiamo visto che grazie ai doppi apici possiamo racchiudere una stringa, una frase.
Ma è molto bene prestare attenzione a un paio di casi particolari perché, un po’ come con gli elementi HTML, è necessario essere in grado di bilanciare questi elementi all’interno del nostro codice.
<?php //Corrette echo "Ciao sono una stringa"; echo 'Anche io sono una stringa'; echo "Qui vengono usate le \"virgolette\" con un escape"; echo 'Mentre qui l\'escape serve per il singolo apice'; echo "Volendo pero posso 'mischiare' virgolette e apici"; echo 'E anche "fare" il contrario'; //Sbagliate echo "Pero se inizio con le virgolette'; echo 'non posso finire con un singolo apice"; echo "Devo anche stare "attento"; echo a come equilibrare il tutto"; ?>
Come puoi vedere dagli esempi appena mostrati, stare attenti al bilanciamento delle virgolette e degli apici è molto importante per non creare inutili errori che rallentano il nostro lavoro.
Se necessario possiamo anche utilizzare uno specifico carattere di escape (\
) che ci permette di inserire il tipo di carattere già utilizzato, ma la cosa fondamentale è ricordarsi di chiudere la stringa con lo stesso carattere utilizzato in apertura.
Esistono altre piccole differenze tra i due modi che ci permettono di delineare una stringa ma torneremo ad analizzarli quando avremo l’opportunità di osservarli da vicino.
Gli standard per scrivere in modo corretto
Per tutta questa lezione, rispettare la sintassi e la logica del linguaggio PHP sono stati alla base del nostro apprendimento.
Per ora non hai ancora scoperto molto di questo linguaggio ma ti confesso che non manca molto, già dalla prossima lezione inizieremo a scoprire un elemento fondamentale di qualsiasi linguaggio di programmazione.
Come però ti puoi immaginare, non sono qui per lanciare degli spoiler ma piuttosto il mio interesse è quello di farti partire con il piede giusto e per questo motivo voglio trattare velocemente alcuni degli standard di scrittura che sono stati descritti nella pagina dedicata all’interno del Codex WordPress.
Quello che ti voglio far notare fin da ora è che il codice che scriveremo durante questo corso rispetta gli standard WordPress che non sono altro che una variante degli standard promossi dal PEAR, una storica soluzione per portare la gestione pacchettizzata delle librerie PHP alla portata di tutti.
Al giorno d’oggi molti si sono spostati su Composer per gestire le dipendenze dei propri progetti, ma con dati alla mano PEAR si dimostra ancora molto utilizzato.
Comunque sia, piccole lotte di religione a parte, le precedenti sono nozioni che al momento non ti dovrebbero interessare e anche se torneremo a parlare degli standard della sintassi che dobbiamo utilizzare quando sviluppiamo in PHP, vediamo un po’ quali sono i punti che ti posso consigliare già da ora.
- Ogni istruzione o comando termina con un
;
. Abbiamo detto precedentemente che questo è un must per far capire al PHP quali sono i diversi comandi. - A ogni comando corrisponde una nuova riga, questo aiuta ad aumentare la leggibilità del nostro codice e a separare le singole istruzioni.
- Per indentare il nostro codice si usano le Tab e non gli spazi. L’unica eccezione a questa regola la vedremo nella prossima lezione quando verranno dichiarate diverse variabili una dopo l’altra.
- Le parentesi dovranno essere sempre utilizzate anche quando risultano opzionali dato che aiutano a presentare meglio la logica di esecuzione del nostro codice.
- Mai usare la versione abbreviata del tag di apertura PHP. In alcune, vecchie, configurazioni è possibile aprire un blocco PHP scrivendo soltanto
<?
al posto di <?php. Usa sempre la seconda per motivi di compatibilità e di facilità di lettura.
Come dicevo, esistono molti altri standard utili da ricordare, ma sono sicuro che ti faciliterò questo compito presentandoli singolarmente nel momento in cui potrai metterli in pratica.
Conclusioni
Questa lezione ha visto molti concetti teorici che stanno alla base di questo linguaggio di programmazione, sicuramente sono concetti che ripasseremo man mano che proseguiremo in questo corso ma spero comunque che sia stato in grado di aiutarti a fissarteli bene in mente e che già nella prossima lezione sarai in grado di utilizzarli.
Non mi resta altro che invitarti a svolgere gli esercizi, creati appositamente per aiutarti ad apprendere al meglio e aspettarti nella prossima lezione dove, finalmente, ti presenterò l’elemento che sta alla base di qualsiasi linguaggio di programmazione.
Nella prossima lezione parliamo di variabili e dei tipi di valori che possiamo utilizzare in PHP.
Lascia un commento