Funzioni definite dall'utente


Esempio 2

Nel seguente esempio si propone una piccola variante al testo dell'esempio 1, che non implica nessuna differenza nella realizzazione della pagina da parte del browser e che può apparire un'inutile complicazione, ma che può essere invece utile per affinare la tecnica di programmazione.

Questo è il testo della sezione body.

<!DOCTYPE html>
<html lang="it"> 

<head>
  <title>contaV1
  <
  <meta name="viewport" content="width=device-width,minimum-scale=1.0,initial-scale=1.0">
</head>

<body>
<h1>
<?php
  function contatore()
    {
      $conta = 0;
      $nf = "file_conta.txt";
      if (file_exists($nf))
        {
          $file = fopen($nf,"r");
          $conta = fgets($file);
          fclose($file);
        }
      $conta++;
      $file = fopen($nf,"w");
      fputs($file,$conta);
      fclose($file);
      $out = "Questa pagina è stata visitata ";
      if ($conta == 1) 
        $out .= "una volta.";
      else
        $out .= $conta." volte.";
      return $out;
    }
  echo contatore();
?>
</h1>
</body>
</html>

La variante consiste nell'accorpamento del gruppo di istruzioni finalizzate alla gestione delle operazioni di lettura e scrittura sul file "file_conta.txt" in una struttura autonoma di programmazione rappresentata dalla funzione contatore().

Questa funzione, a differenza delle funzioni predefinite illustrate nell'esempio precedente e che continuano ad essere usate all'interno della funzione contatore(), è redatta dal programmatore con una sintassi simile a quella del Javascript.

Nell'esempio, l'istruzione echo manda alla pagina HTML il valore prodotto dalla funzione contatore().

Salvare la nuova versione della pagina nella stessa cartella contavisite dell'esempio precedente con nome contaV1.php e attivarla con il browser scrivendo localhost/contavisite/contaV1.php.