PHP/Programmazione

Wikibooks, manuali e libri di testo liberi.
< PHP
Indice del libro

Analizzeremo ora i fondamenti del linguaggio, partendo dalle nozioni di base fino a descrivere tutte le caratteristiche fondamentali (alcune delle quali saranno trattate approfonditamente in seguito).

Ogni file viene interpretato dal motore di PHP scorrendo le istruzioni nell'ordine in cui sono scritte, dal basso verso l'alto. Non è necessario compilarli, come ad esempio in C. Ad ogni richiesta giunta al webserver (input) viene chiamato l'interprete PHP, il quale processerà il file oggetto della richiesta e restituirà un output. Nella maggior parte dei casi la richiesta proviene da un browser e l'output sarà in formato HTML.

Per poter essere eseguiti dall'interprete, i file PHP devono trovarsi in una cartella a cui il webserver abbia accesso, denominata root directory, e devono avere estensione .php (a meno di configurazioni particolari, che qui saranno ignorate).

PHP e HTML insieme[modifica]

Il codice PHP può coesistere all'interno dello stesso file insieme al linguaggio HTML. Sebbene non sia una buona pratica, nella prima parte di questo libro gli esempi potranno contenere entrambi i linguaggi per una più facile comprensione. In seguito si esamineranno soluzioni migliori per scrivere il codice che faccia parte della "logica applicativa" quanto più possibile slegato dal codice "presentazionale".

Delimitare il codice PHP[modifica]

Anche qualora non vi fosse HTML, ogni codice di PHP deve essere racchiuso dai tag <?php e ?>.

Se l'interprete è configurato appositamente può riconoscere la sintassi abbreviata <? e ?>, del tutto simile alla precedente ma il cui uso è fortemente scoraggiato e da evitare. D'ora in avanti nel testo troverete sempre la versione estesa <?php.

File contenenti solo PHP[modifica]

Nel caso il file contenga soltanto codice PHP (senza testo o HTML) è preferibile omettere il tag di chiusura. In questo modo si eviterà che spazi, tabulazioni o interruzioni di linea inseriti accidentalmente dopo di esso possano causare errori (per esempio quando si gestisce il buffer dell'output o quando si inizializza una sessione). Si ricordi, ovviamente, di porre <?php all'inizio del file, prima di ogni altra cosa.

Separazione delle istruzioni[modifica]

All'interno dei tag delimitatori si possono inserire un qualsiasi numero di istruzioni, ciascuna delle quali deve essere seguita dal punto e virgola per separarla dalla successiva. Esso può essere omesso nell'ultima istruzione. Tuttavia questa tecnica può generare confusione (o addirittura errore se si aggiungesse altro codice) pertanto non è una consigliata.

È possibile inserire più istruzioni sulla stessa riga o una singola istruzione su più righe. Sebbene tra ogni istruzione siano ammessi caratteri di spaziatura e tabulazioni, non si deve abusare di questa grande flessibilità: ogni programmatore dovrebbe scrivere codice pulito e leggibile.

  <?php

    // Esempio di pessimo codice
    echo

      'Testo da mostrare al nostro utente'
   ;

    // Lo stesso codice più snello e leggibile
    echo 'Testo da mostrare al nostro utente';

Le righe che iniziano con i caratteri // sono commenti che il parser ignora totalmente. Saranno spiegati dettagliatamente nella prossima sezione.

Il primo esempio: hello world[modifica]

Procediamo alla creazione di un file semplice che abbia come finalità solamente quello di mostrare all'utente la classica scritta "Hello world!" ("Ciao mondo!"), salvandolo con il nome prova.php nella directory riconosciuta dal webserver che abbiamo installato.

  <!DOCTYPE HTML>
  <html>
    <head>
      <title>Primo script PHP</title>
    </head>
    <body>
      <p><?php echo 'Hello world!'; ?></p>
    </body>
  </html>

Se tutto è configurato correttamente, visitando l'indirizzo http://localhost/prova.php vedremo una pagina contenente la scritta "Hello world!". Per farlo abbiamo inserito un'istruzione che fa uso del costrutto echo, il quale invia in output una o più stringhe. print agisce allo stesso modo, è anch'esso un costrutto del linguaggio PHP (non, quindi, una funzione, che saranno esaminate più avanti in questo libro) ma può inviare in output una sola stringa.

  <?php

    echo 'Prima stringa', 'Seconda stringa'; // Codice corretto

    print 'Prima stringa', 'Seconda stringa'; // Errore di sintassi

Esiste una sintassi abbreviata per inviare in output una stringa ed è la seguente: <?= ?>. Può essere utile quando ci si trova di fronte a un codice in cui è presente codice HTML, come visto nell'esempio precedente.

  <!DOCTYPE HTML>
  <html>
    <head>
      <title>Primo script PHP</title>
    </head>
    <body>
      <p><?= 'Hello world!' ?></p>
    </body>
  </html>

Ovviamente usare un linguaggio come PHP per inviare output totalmente statici – come negli esempi visti – non avrebbe utilità. La potenza della programmazione risiede nella dinamicità, alla cui base vi sono le variabili che qui non sono state presentate per motivi di semplicità.