Il logo del sito

Appunti su PHP

Introduzione

E' una pagina enorme rispetto alle altre. Una delle prime che ho realizzato. L'ho usata come riferimento rapido per lo sviluppo degli altri esempi su PHP. Mi è stata utile e pertanto la lascio così com'è.

1. Le basi del linguaggio.

Sintesi della prima parte del tutorial w3schoools su PHP

1.1 Prerequisiti

Conoscenza base di:

1.2 Cosa è PHP?

1.3 Che cosa è un file PHP?

2. Installazione

2.1 Di cosa c'è bisogno?

Per iniziare ad usare PHP, si può:

Dal momento che sto usando un server che supporta sia PHP che MySQL, non faccio altro.

3. Sintassi

3.1 Basi

Uno script PHP può essere posto ovunque in un documento.

Uno script PHP inizia con <?php e termina con ?>

Esempio:

Esattamente in questo punto ho inserito:

<?php echo "Mio primo esempio di codice php" ?>

Ecco il risultato.

Mio primo esempio di codice php

In alternativa avrei potuto scrivere il codice php in un file esterno ed includerlo con: <?php include 'es01.php' ?> In questo caso es01.php contiene esattamente:

<?php echo "Mio primo esempio di codice php!" ?>

Quindi la cosa sembra aver poco senso. Ma se ne intuisce l'utilità nel caso di script più complessi o riutilizzabili in più punti o su più documenti.

Mio primo esempio di codice php!

Se il presente documente avesse avuto estensione ".html" non sarebbe successo niente.

Devo vedere se esiste qualche strumento per validare i file con estensione ".php

4. Variabili

4.1 Creazione

4.2 Visibilità

Le variabili possono essere:

4.3 Tipi di variabili

I dati all'interno delle variabili possono essere di tipo:

5. Funzioni stringa (elenco completo)

Anche PHP ha funzioni per trattare le stringhe. Eccone alcune:

6. Costanti

In PHP le costanti sono globali e vanno dichiarate con la funzione:

define(nome, valore, case-insensitive);

nome non deve iniziare con $; per default sono case-sensitive.

7. Operatori

8. Controllo del flusso di esecuzione

8.1.1 if

8.1.2 if else

8.1.3 if elseif

8.4 switch


switch ($variabile){
   case valore1:
      ...;
      ...;
      break;
   case valore2:
      ...;
      ...;
      break;
   ...
   ...
   case valoreN:
      ...;
      ...;
      break;
   default:
      ...:
      ...;
}

8.5 while


while (condizione){
   ...;
   ...;
   ...;
}

9. Funzioni


/* forma generale */
function nomeFunzione($arg1, $arg2, COST,...){
   ...;
   ...;
   return $val;
}

nomeFunzione è case-insensitive;
ad una funzione possono essere passati 0 o un numero qualsiasi di parametri;
lo statemente return $value, posto in fondo alla funzione restituisce il valore della variabile $val;
lo statement return può essere omesso;
l'invocazione di una funzione si fa con:
$var = nomeFunzione(arg1, arg2, ...)
o con
nomeFunzione(arg1, arg2, ...);
a seconda della presenza o meno dello statement return;







10 Array

10.1.1 Esempio 1 - array giorniDellaSettimana


/* Definizione di una array contenente i giorni della settimana*/
$giorniDellaSettimana = array("lun", "mar", "mer", "gio", "ven", "sab", "dom");
foreach ($giorniDellaSettimana as $giorno){
   echo "$giorno,  ";
}
lun, mar, mer, gio, ven, sab, dom,

/* Un altro modo per definire la stessa array */
$giorniDellaSettimana  = ["lun", "mar", "mer", "gio", "ven", "sab", "dom"];
foreach ($giorniDellaSettimana as $giorno){
   echo "$giorno,  ";
}
lun, mar, mer, gio, ven, sab, dom,

10.1.2 Esempio 2 primo tentativo, fallito, per costruire un array con i mesi dell'anno a partire dalle quattro array con i mesi delle stagioni.

Voglio provare ad utilizzare l'operatore array + (unione)


/* Definizione quattro array: $inverno, $primavera, $estate e $autunno, ognuna contenente 
i rispettivi nomi dei mesi. Poi proverò ad unirle con l'operatore + nell'array  $anno che 
mi aspetto contenga tutti i dodici mesi dell'anno */
$inverno = array("gennaio", "febbraio", "marzo");
$primavera  = array("aprile", "maggio", "giugno");
$estate = array("luglio", "agosto", "settembre");
$autunno = array("ottobre", "novebre", "dicembre");
$nMesi = count($inverno);
echo ("inverno ha $nMesi mesi <br>");
foreach ($inverno as $mese ){
   echo "$mese,  ";
}
$nMesi=count($primavera);
echo ("<br>primavera ha $nMesi mesi <br>");
foreach ($primavera as $mese){
   echo "$mese,  ";
}
$nMesi=count($estate);
echo ("<br>estate ha $nMesi mesi <br>");
foreach ($estate as $mese){
   echo "$mese,  ";
}
$nMesi=count($autunno);
echo ("<br>autunno ha $nMesi mesi <br>");
foreach ($autunno as $mese){
   echo "$mese,  ";
}
$anno = ($inverno+$primavera+$estate+$autunno);
$nMesi=count($anno);
echo ("<br>Anno ha $nMesi mesi <br>");
foreach ($anno as $mese){
   echo "$mese,  ";
}
inverno ha 3 mesi
gennaio, febbraio, marzo,
primavera ha 3 mesi
aprile, maggio, giugno,
estate ha 3 mesi
luglio, agosto, settembre,
autunno ha 3 mesi
ottobre, novebre, dicembre,
Anno ha 3 mesi
gennaio, febbraio, marzo,
Pare proprio che non funziona come pensavo. Mi aspettavo di trovare in anno l'unione delle quattro stagioni, ma non è così. Ce ne sarà sicuramente una ragione, ma al momento mi sfugge. Per ottenere quello che voglio posso fare così:

11 Variabili Superglobals

Le variabili superglobals sono variabili sempre accessibili da qualunque punto del codice php, indipendentemente dal documento in cui si trova.

Al momento non so cosa farmene. Ci tornerò in seguito.



1.4 Cosa può fare PHP?

1.5 Perché usare PHP?



















3.2 Commenti

Commenti in stile java

3.3 Case sensitive

PHP è un linguaggio case sensitive.






















4.4 Esempio


<?php 
   $nome = "Claudio"; //$nome è una variabile di tipo stringa 
   $eta = 62;  //$eta è una varibile di tipo integer 
   $Mesi=333;
   mesi();
   function mesi(){
/* Questo pezzetto di codice per riassumere il paragrafo.
*  Variabili:
*     creazione e visibilità;
*  Commenti stile Java */ 
      global $nome;
      global $eta;
      $mesi = $eta*12;
      $Mesi = $eta*12;
      echo "<p>All'interno della funzione mesi() $nome ha $mesi mesi</p>";
      echo "<p>All'interno della funzione mesi() $nome ha $Mesi mesi</p>";
   }
   echo "<p>All'esterno della funzione mesi() $nome ha $mesi mesi</p>"; 
   echo "<p>All'esterno della funzione mesi() $nome ha $Mesi mesi</p>"; 
?>     

E questo è l'output:

All interno della funzione mesi() Claudio ha 744 mesi

All interno della funzione mesi() Claudio ha 744 mesi

All esterno della funzione mesi() Claudio ha mesi

All esterno della funzione mesi() Claudio ha 333 mesi



















5.1 Esempio


<?php 
   $stringa = "Una stringa di provare qualche funzione di manipolare le stringhe."; 
   $str_cerca = "di";  
   $str_sostituisci = "per";
   echo strlen($str_sostituisci);
   echo str_word_count($stringa);
   echo strrev($stringa);
   var_dump(strpos($stringa, "manopolare"));
   echo strpos($stringa, "manipolare");
   echo  str_replace($str_cerca, $str_sostituisci, $stringa);
?>     

E questo è l'output:

3
10
.ehgnirts el eralopinam id enoiznuf ehclauq eravorp id agnirts anU
bool(false)
43
Una stringa per provare qualche funzione per manipolare le stringhe.


















8.6 do while


do {
   ...;
   ...;
   ...;
}while (condizione);

8.7 for


for($var=0; $var<$x; $var++) {
   ...;
   ...;
   ...;
}

8.8 foreach


foreach($array as $val) {
/* per ogni elemento $val di $array faccio qualcosa.*/
   ...;
   ...;
   ...;
}







9.1 PHP function Reference

PHP mette a disposizione del programmatore un gran numero di funzioni:




10.1.3 Esempio 3 secondo tentativo, riuscito, per costruire un array con i mesi dell'anno a partire dalle quattro array con i mesi delle stagioni.

Con l'esempio precedente ho capito che non posso usare l'operatore + per unire le quattro stagioni.


/* Le array $inverno, $primavera, $estate e $autunno, l'ho definte sopra. Partendo 
da queste definisco l'array $mesiAnno*/

for($stagione=1; $stagione<=4; $stagione++){
   $indMese=0;
   foreach($inverno as $mese){
      $mesiAnno[$indMese]=$mese;
      $indMese++;
   }
   foreach($primavera as $mese){
      $mesiAnno[$indMese]=$mese;
      $indMese++;
   }
   foreach($estate as $mese){
      $mesiAnno[$indMese]=$mese;
      $indMese++;
   }
   foreach($autunno as $mese){
      $mesiAnno[$indMese]=$mese;
      $indMese++;
   }  
}
$numMesiAnno= count($mesiAnno);
echo ("<br>Numero mesi dell anno: $numMesiAnno <br>");
foreach ($mesiAnno as $mese){
   echo "$mese,  ";
}

Numero mesi dell anno: 12
gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novebre, dicembre,
Funziona, ma è proprio grezzo. Così è un po meglio:

10.1.4 Esempio 4 terzo tentativo, riuscito, per costruire un array con i mesi dell'anno a partire dalle quattro array con i mesi delle stagioni.

In questo esempio uso l'array di array $stagioni che ha come elementi le array delle stagioni sopra definite.


$stagioni = [$inverno, $primavera, $estate, $autunno];
foreach($stagioni as $stagione){
   $indMese=0;
   foreach($stagione as $mese){
      $mesiAnno[$indMese]=$mese;
      $indMese++;
   }
}
$numMesiAnno= count($mesiAnno);
echo ("<br>Numero mesi dell anno: $numMesiAnno <br>");
foreach ($mesiAnno as $mese){
   echo "$mese,  ";
}

Numero mesi dell anno: 12
ottobre, novebre, dicembre, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novebre, dicembre,

Sulle array c'è un mare di altre cose. Ma per ora basta così. Ci tornerò quando ne avrò bisogno.