dal 2015 - visita n. 1199
tag e commenti php-02
tag e commenti php-02

 

La relazione con l'HTML

Cerchiamo di capire adesso come avviene la produzione di codice HTML da parte del codice PHP che si trova incorporato nello stesso file. Questa fase di riconoscimento è molto importante, dato che permette a PHP di essere incluso all'interno di normale codice HTML in modo da renderne dinamica la creazione. Il codice PHP deve essere compreso fra appositi tag di apertura e di chiusura, che sono i seguenti:

<?php //tag di apertura
?>    //tag di chiusura 

Tutto ciò che è contenuto fra questi tag deve corrispondere alle regole sintattiche del PHP, ed è codice che sarà eseguito dall'interprete e non sarà inviato direttamente al browser al browser. Per generare l'output da inviare al browser attraverso codice PHP viene normalmente utilizzato il costrutto echo. Vediamo un semplice esempio, composto da codice HTML e codice PHP (il codice PHP è evidenziato in rosso):

<html>
  <head>
    <title>
      <?php
        echo "Titolo scritto in PHP";
      ?>
    </title>
  </head>
  <body>
    <?php echo "Messaggio n.1 scritto in PHP"; ?>
    <br>Messaggio n.2 scritto in HTML
  </body>
</html>

Questo banalissimo codice misto HTML-PHP produrrà il file HTML che sarà spedito al client ed il cui contenuto sarà semplicemente:

<html>
  <head>
    <title>
      Titolo scritto in PHP
    </title>
  </head>
  <body>
    Messaggio n.1 scritto in PHP
    <br>Messaggio n.2 scritto in HTML
  </body>
</html>

E quindi l'utente vedrà sul suo browser le 2 righe:

Messaggio n.1 scritto in PHP
Messaggio n.2 scritto in HTML

all'interno di una pagina web nella cui barra dei titoli c'è: Titolo scritto in PHP

NOTA-1: un insieme di caratteri racchiusi tra apici singoli (' ') o apici doppi (" ") prende il nome di stringa.
Con il comando echo si possono inviare al browser più stringhe separate da virgole, così:
echo "Ciao a tutti,", "<br>", "evviva le vacanze!";
Nel caso di una singola stringa l'espressione può essere racchiusa tra parentesi tonde, così:
echo ("Ciao a tutti");

NOTA-2: nel corso delle esercitazioni si userà spesso il verbo stampare riferito alle azioni prodotte dal comando echo o da istruzioni con funzionalità analoghe (come print, sprintf e altro), ricordiamoci però che si tratta solo di un modo di dire abbastanza comune, perchè in effetti questa stampa non avviene su carta, ma sull'input che verrà inviato al browser!


Il simbolo \n (codice newline) ha una funzione abbastanza importante nella programmazione e nello scripting e serve per dare leggibilità al codice HTML che viene prodotto. PHP trasforma questa combinazione di caratteri fra virgolette in un carattere di ritorno a capo, permettendo di controllare meglio l'impaginazione del codice HTML. Attenzione, però, perchè il browser riconosce solo il tag <br> per forzare il testo ad andare a capo. Quando questo tag non c'è, il browser allinea tutto il testo proseguendo sulla stessa linea (almeno fino a quando gli altri elementi della pagina e le dimensioni della finestra non gli "consigliano" di fare diversamente), anche se il codice HTML ha un ritorno a capo.

Vediamo di chiarire questo concetto con un esempio:

<?php
echo "prima riga\n";
echo "seconda riga<br>";
echo "terza riga"; ?>

Questo codice PHP produrrà il seguente codice HTML:

prima riga
seconda riga<br>terza riga

mentre l'utente, sul browser, leggerà:

prima riga seconda riga
terza riga

Questo perchè il codice PHP, mettendo il codice newline dopo il testo 'prima riga', fa sì che il codice HTML venga formato con un ritorno a capo dopo tale testo. Il file ricevuto dal browser quindi andrà a capo proprio lì. Il browser, però, non trovando un tag che gli indichi di andare a capo, affiancherà la frase 'prima riga' alla frase 'seconda riga', limitandosi a mettere uno spazio fra le due. Successivamente accade l'esatto contrario: PHP produce un codice HTML nel quale il testo 'seconda riga' è seguito dal tag <br>, ma non dal codice newline. Per questo, nel file HTML, 'seconda riga<br>' e 'terza riga' vengono attaccati. Il browser, però, quando trova il tag <br> porta il testo a capo.

Si noti che in fondo ad ogni istruzione PHP c'è un punto e virgola; infatti la sintassi del PHP prevede che il punto e virgola debba obbligatoriamente chiudere ogni istruzione, a parte qualche eccezione, che si incontrerà più avanti.
Da quanto si è visto finora emerge una realtà molto importante: chi vuole avvicinarsi al PHP deve già avere una conoscenza approfondita di HTML e di tutto quanto può far parte di una pagina web, lo scopo principale di PHP è, infatti, proprio la produzione dei codici HTML.


Quando usare PHP e quando non usarlo

Elementi a favore del PHP sono: una bassa curva di apprendimento, facilità di manutenzione, velocità complessivo di esecuzione veloce. Con queste caratteristiche è difficile non pensare che PHP sia la scelta migliore per una applicazione web che coprenda: homepage, gestione di front-end per database, interfacce grafiche.

In un paio di casi il PHP potrebbe avere qualche difficoltà di utilizzo. Il primo caso, quando c'è necessità delle massime prestazioni possibili in termini di velocità, e allora si dovrebbe utilizzare C o C ++. Entrambi i linguaggi sono ingombranti sul web, ma offrono prestazioni superiori. Ma anche in questo caso si potrebbe prendere in considerazione di scrivere le parti critiche in codice C come estensioni del PHP. Il secondo caso, quando si deve intervenire su un grande sistema già scritto in un altro linguaggio. In questo caso le aggiunte in PHP rischiano solo di rendere il lavoro di manutenzione più difficile, e quindi sarebbe meglio nel lungo periodo continuare ad utilizzare il vecchio linguaggio.


La struttura sintattica del linguaggio

Nel paragrafo precedente abbiamo visto che PHP necessita di una coppia di tag per l'apertura e la chiusura del codice contenuto in un file richiesto da un Web Server. Si tratta dei tag

<?php
.....
?>

Abbiamo però la possibilità di usare anche alcune sintassi alternative, che sono comunque sconsigliate per permettere una corretta distribuzione e portabilità dei propri progetti. In primo luogo, in script scritti in versioni precedenti di PHP, potremmo trovare il classico tag <script> con specificato esplicitamente il linguaggio PHP:

<script language="php">
.......
</script>

Un'altra possibilità è quella di usare i tag brevi, che devono essere abilitati manualmente modificando le impostazioni del file di configurazione php.ini:

<?
....
?> 

Ricordiamoci tuttavia che in PHP 5 la configurazione standard disabilita i tag brevi. Un'ultima possibilità è quella di usare i tag in "stile ASP":

<%
....
%>

Anche questi però devono essere abilitati in php.ini e sono praticamente inutilizzati dalla maggior parte dei programmatori. Tutta questa varietà di sintassi è causata dalla volontà degli sviluppatori di mantenere la retrocompatibilità con le vecchie versioni che, a causa di scelte differenti di design, permettevano l'utilizzo di tag alternativi. È bene ricordare che rimane buona pratica utilizzare i tag completi evitando se possibile i tag brevi ed escludendo le altre possibilità.

Per chi non ci avesse fatto caso, puntualizzo un concetto molto importante: i tag delimitano il codice PHP, ed il codice contenuto al loro interno non sarà inviato al browser, ma compilato e eseguito. Da questo potremmo dedurre che tutto ciò che sta fuori da questi tag non verrà toccato da PHP, che si limiterà a passarlo al browser così com'è, eventualmente ripetendolo in base a situazioni particolari che vederemo in seguito. In linea di massima è bene ricordare che scrivere:

<?php
echo "<strong>";
?>
prova</strong>

e:

<strong>prova</strong>

(o qualsiasi altra combinazione) restituisce lo stesso risultato.


I commenti

Un altro argomento molto importante legato alla sintassi di PHP sono i commenti. Chi ha esperienza, anche minima, di programmazione, sa bene che molte volte i commenti si rivelano di importanza decisiva quando si tratta di mettere le mani su un programma realizzato da qualcun altro, e anche quando il programma è stato scritto da noi stessi, soprattutto se è passato qualche tempo dalla realizzazione. I commenti svolgono un ruolo fondamentale in questa fase di "rivisitazione" del codice, in quanto possono facilitare di molto la comprensione di passaggi apparentemente oscuri.

È bene quindi non risparmiare mai un commento quando possibile (senza comunque esagerare altrimenti, al posto di chiarire il codice lo renderete ancora più illeggibile), anche perchè il loro utilizzo non appesantisce l'esecuzione dello script (l'interprete PHP salta tutte le parti che riconosce come commenti), nè il trasferimento della pagina al browser (infatti i commenti, essendo contenuti all'interno del codice PHP, fanno parte di ciò che non viene inviato al browser).

Abbiamo tre diverse possibilità per posizionare i commenti all'interno del nostro codice: la prima è l'uso dei commenti in stile C++, caratterizzati da due barre:

<?php
// Commento in stile C++
?>

La seconda sono i commenti in stile Perl e Python, contraddistinti dall'uso del cancelletto (anche se ormai obsoleti e poco utilizzati):

<?php
# Commento in stile Perl
# e python
?>

Entrambi questi tipi di commenti sono limitati ad una sola riga: l'interprete PHP, quando trova le barre o il cancelletto, salta tutto ciò che si trova da quel punto fino al termine della riga. Questo ci permette di porre il commento anche sulla stessa riga del codice commentato, così:

<?php
  echo 'Ciao a tutti <br>';
  //stampo un messaggio di saluto
  print 'Esclusi quelli antipatici';
  # faccio una precisazione
  // Questa riga contiene solo commento
?>

L'ultimo tipo di commento che abbiamo a disposizione permette di specificare commenti multilinea senza dover ripetere i caratteri ogni nuova riga grazie ad una coppia di caratteri utilizzati per l'apertura e la chiusura. Tutto il codice che segue /* viene considerato commento da PHP finchè non incontra la serie di caratteri */. Un semplice esempio:

<?php
  /* Questo è un commento
  multiriga specificato
  utilizzando la stessa sintassi
  usata in Java e C */
  echo /* commento */ "Ciao a tutti"
  /* i commenti vengono saltati*/;
?> 

Riguardo i commenti multilinea, è importante ricordare che non possono essere innestati e che comunque rappresentano un separatore per l'interprete PHP. Per questo motivo le seguenti sintassi sono errate:

<?php
  /* Commento 
  /* multilinea */
  Qui verrà generato un errore ...
  */  
  ec/* questa modalità è errata */ho "Ciao, ciao...";  
  ?>  

La scelta di quale tipo di commento utilizzare è solitamente soggettiva, anche se spesso vengono utilizzati i commenti multiriga per documentare il codice e quelli a riga singola per aggiungergli dei semplici appunti sul funzionamento logico.



















Menù
Introduzione
Ambiente di sviluppo
intro php-01
tag e commenti php-02
variabili e tipi php-03
operatori php-04
php IF esercizi
php FOR esercizi
php objects intro
php objects parte 1
php objects parte 2
php objects parte 3
php objects parte 4
php objects parte 5
CLIL
php socket intro
php socket parte 1
php socket parte 2
php socket parte 3
php socket parte 4
php socket parte 5
php socket parte 6
php socket extra
linux netcat


MiniGuida PHP
Guida Ufficiale PHP (en)
Form Base
Flat DataBase
Pagine Protette
mySQL



Ciò che ci fa amare le nuove conoscenze non è tanto il fatto che siamo stanchi delle vecchie o desideriamo di cambiarle, quanto il fastidio di non essere abbastanza ammirati da chi ci conosce bene, e la speranza di esserlo di più da chi ci conosce appena.
François de La Rochefoucauld

Valid CSS!
pagina generata in 0.001 secondi