La differenza tra lato client e lato server sta tutta nel modo e da chi viene interpretata una pagina Web quando essa viene caricata.
quando un server Web predisposto per il PHP riceve una richiesta dal browser di un client iniziano una serie di operazioni: Il server:
Legge ed individua la pagina sul server.
Esegue le istruzioni PHP contenute all'interno della pagina ed esegue tutti i comandi PHP.
Rimanda la pagina risultante al Browser
Vantaggi di PHP
PHP è un linguaggio molto semplice da utilizzare, a cominciare dalla sintassi derivata direttamente da veri linguaggi di programmazione come C/C++, Perl, Java.
Forse la vera forza del PHP sta nella gestione dei database, con poche righe di codice è possibile accedere qualsiasi database, estrapolare i dati che ci interessano e inserirli nella pagina Web.
Un altro punto a favore del PHP è la sua natura OpenSource, quindi gratuita.
Infine il PHP gira su tutti in principali Web server ed in linea di massima non dobbiamo apportare nessuna modifica al codice quando lo spostiamo da un Web server ad un altro.
Primo esempio
Affinché l'interprete PHP riesca a distinguere all'interno del codice il linguaggio da interpretare ed eseguire (PHP) dall'HTML occorre utilizzare dei TAG particolari. Ecco un semplice esempio:
E’ possibile assegnare il valore di una variabile a un’altra variabile in due modi diversi:
by value: “copiando” nella seconda variabile il valore della prima
$a = 10;
$b = $a;
by reference: creando un “link” tra il valore della seconda variabile e il valore della prima
$a = 10;
$b = &$a;
Tipi di base: stringhe
Una stringa può essere specificata in 3 modi:
Single quoted (‘)
Double quoted (“)
Heredoc syntax
Stringhe: single quoted
Stringhe: double quoted
Stringhe: Heredoc
Stringhe: lunghezza
La funzione strlen permette di calcolare la lunghezza di una stringa:
$a = “prova”;
echo ‘strlen(“prova”) = ‘ . strlen($a);
L’output sarà:
strlen(“prova”) = 5
Array
Se invece, per aggiungere elementi ad un array (supponiamo che sia quello precedentemente creato) si utilizzano le parentesi quadre vuote, i dati vengono accodati all'array; ad esempio:
$a[] = “pippo";
$a[] = “pluto";
In questo caso, l'array si allunga di 2 elementi e risulta:
$a[0] = “qui";
$a[1] = “quo";
$a[2] = “qua";
$a[3] = “pippo";
$a[4] = “pluto";
Gli array associativi si basano invece su coppie "name-value"; un esempio potrebbe essere:
E' interessante la possibilità della funziona array di annidare le entries, come nell'esempio che segue:
$a = array(
"primo" => array(
"nome" => "Mario",
"cognome" => "Rossi",
"email" => "mario@rossi.com",),
"secondo" => array(
"nome" => "Marco",
"cognome" => "Verdi",
"email" => "mario@verdi.com"));
Eseguire su questo array un comando del tipo:
echo $a["secondo"]["email"]; ?>
visualizzerà "mario@verdi.com"
Operatori aritmetici
I principali operatori aritmetici sono i seguenti:
$a + $b Somme Sum of $a and $b.
$a - $b Sottrazione Difference of $a and $b.
$a * $b Moltiplicazione Product of $a and $b.
$a / $b Divisione Quotient of $a and $b.
$a % $b Resto Remainder of $a divided by $b.
Operatori di confronto
I principali operatori di confronto sono i seguenti:
$a == $b Uguaglianza (TRUE se $a è uguale a $b)
$a === $b Identità (TRUE se $a è identico a $b, e sono dello stesso tipo (solo PHP 4!)
$a != $b Diseguaglianza (TRUE se $a non è uguale a $b)
$a <> $b Come sopra
$a !== $b Non indentità (TRUE se $a non è identico a $b, o non sono dello stesso tipo (solo PHP 4)
$a < $b Minore di (TRUE se $a strettamente minore di $b)
$a > $b Maggiore di (TRUE se $a è strettamente maggiore $b)
$a <= $b Minore o uguale (TRUE se $a è minore o uguale a $b)
$a >= $b Maggiore o uguale (TRUE se $a è maggiore o uguale a $b)
Operatori logici
I principali operatori logici sono i seguenti:
$a and $b And TRUE se $a e $b sono TRUE.
$a or $b Or TRUE se $a o $b sono TRUE.
$a xor $b Xor TRUE se $a o $b sono TRUE (ma non entrambi).
!$a Not TRUE se $a non è TRUE.
$a && $b And TRUE se $a e $b sono TRUE.
$a || $b Or TRUE se $a o $b sono TRUE.
Strutture di controllo
if - endif
else
elseif
while
for-each
switch
IF
If permette di eseguire un blocco di codice se avviene (o non avviene) una determinata condizione; la sua sintassi è:
if (condizione) {
statement }
Ad esempio:
$a = 2;$b = 2;if ($a == $b) {echo "\$a è uguale a \$b e valgono $a.\n";}
endif
If può essere usato anche senza graffe se si utilizza il comando “endif”:
Ad esempio:
$a = 2;
$b = 2;
if ($a == $b)
echo "\$a è uguale a \$b e valgono $a.\n";
endif;
if-else
“else” viene in completamento di “if”: con if, infatti, stabiliamo che succeda qualcosa all'avverarsi di una condizione; con else possiamo stabilire cosa accade nel caso questa non si avveri. Un esempio potrebbe essere:
$a = 2;
$b = 3;
if ($a == $b) {echo "\$a è uguale a \$b e valgono $a.\n";
} else {
echo "\$a è diversa da \$b.\n\$a vale $a mentre \$b vale $b.\n";
}
if-elseif-else
elseif permette di specificare casi non definiti da "if:
if ($a == $b) {echo "\$a è uguale a \$b.\n";}
elseif ($a != $b) {echo "\$a è diversa da \$b.\n";}
elseif (!$a) {echo "\$a non esiste.\n";}
elseif (!$b) {echo "\$b non esiste.\n";}
else {echo “Non so che dire … \n";}
while
La condizione "while" si comporta esattamente come in C; la sintassi di base è:
while (espressione) statement
Per esempio:
/* $a viene incrementato e visualizzato *//* finchè il suo valore non supera "5" */$a = 1;while ($a <= 5) {print $a++;}
for
Il "for" permette di eseguire dei loop. La sintassi è la seguente:
for (expr1; expr2; expr3) statement
Per esempio:
for ($a = 0 ; $a <=10 ; $a++) {print $a;}
visualizzerà i numeri da "0" a "10". Nelle tre espressioni fra parentesi abbiamo definito che:
$a ha valore "0“ (valutato una sola volta all’inizio del loop);
$a è minore o uguale a "10";
$a è incrementata di un'unità.
Quindi, per ogni valore di $a a partire da "0" fino a "10" $a viene visualizzato.
foreach
Il PHP 4 permette di eseguire loop su array in modo semplificato usando il costrutto "foreach“. La sintassi è la seguente:
foreach (array_expression as $value) statement
foreach (array_expression as $key => $value) statement