$| Tipo | Descrizione | Esempio |
|---|---|---|
integer |
numeri interi | 10 |
float (double) |
numeri con parte decimale | 1.5 |
string |
sequenze di caratteri tra apici singoli o doppi | "ciao", 'ciao' |
boolean |
vero o falso | true, false |
array |
variabili che contengono più valori | array(1, 2, 3) |
Sono considerati falsi: 0, NULL, la
stringa vuota e un array privo di valori.
<?php
$a = 10; // integer
$b = $a + 1.5; // float: 11.5
$c = "5 pippo"; // string
$d = $c + 7; // integer: prende il "5" iniziale e somma 7 → 12
print "integer a=$a <br>";
print "real b=$b <br>";
print "string c=$c <br>";
print "integer d=$d <br>";
$m = 10.8; // float
$n = (integer)$m; // cast esplicito a integer → 10
print "real m=$m <br>";
print "integer n=$n";
?>"5 pippo" + 7 vale 12, ma PHP 8 segnala un warning
(stringa numerica solo in parte)"pippo 5" + 7: la stringa non
inizia con un numero
7 (la stringa è convertita
in 0)TypeError(integer) / (int) tronca la parte decimale:
(int)10.8 vale 10<?php
$a = 21;
$b = 11;
echo "a=$a b=$b <br>";
echo "Somma: " . ($a + $b) . "<br>"; // 32
echo "Sottrazione: " . ($a - $b) . "<br>"; // 10
echo "Prodotto: " . ($a * $b) . "<br>"; // 231
echo "Divisione: " . ($a / $b) . "<br>"; // 1.9090909090909
echo "Resto divisione: " . ($a % $b) . "<br>"; // 10
?>La divisione / restituisce un float se il risultato non è intero; il numero di
decimali mostrati dipende dal parametro precision di php.ini.
Hanno una sintassi analoga a quanto visto nel linguaggio C
..= accoda una stringa a una
variabile+ non concatena:
tenta una somma numerica\ (escape)
permette di inserire caratteri specialiif / elseelseif<?php
$a = 7;
$b = 6;
// selezione nidificata
if ($a < $b)
print "$a e' minore di $b <br>";
else
{
if ($a > $b)
print "$a e' maggiore di $b <br>";
else
print "$a e' uguale a $b <br>";
}
// stessa logica con il costrutto elseif
if ($a < $b) { print "$a e' minore di $b <br>"; }
elseif ($a > $b) { print "$a e' maggiore di $b <br>"; }
else { print "$a e' uguale a $b <br>"; }
?>&& (AND): vero se
entrambe le condizioni sono vere|| (OR): vero se almeno
una condizione è vera! (NOT): vero se la condizione è
falsaswitch<?php
$colore = "red";
switch ($colore)
{
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
?>switch funziona sia
con numeri sia con stringhebreak interrompe lo
switch: senza di esso l'esecuzione
prosegue nel case successivodefault viene
eseguito se nessun case corrispondeforCiclo con numero di iterazioni noto a priori:
<?php
$NR_CICLI = 4;
for ($a = 1; $a <= $NR_CICLI; $a++)
{
$b = $a * 2;
print "($a * 2) = $b <br>";
}
?>(1 * 2) = 2
(2 * 2) = 4
(3 * 2) = 6
(4 * 2) = 8
while e do ... while<?php
$NR_CICLI = 4;
// ciclo a condizione iniziale: può non essere eseguito mai
$a = 1;
while ($a <= $NR_CICLI)
{
$b = $a * 2;
print "($a * 2) = $b <br>";
$a++;
}
// ciclo a condizione finale: eseguito almeno una volta
$a = 1;
do
{
$b = $a * 2;
print "($a * 2) = $b <br>";
$a++;
} while ($a <= $NR_CICLI);
?>functionreturn restituisce il valore al
chiamante&): la funzione lavora sulla variabile
originale| Funzione | Descrizione | Esempio |
|---|---|---|
rand($min, $max) |
intero casuale compreso tra due valori | rand(10, 20) |
abs($x) |
valore assoluto | abs(-3.4) → 3.4 |
pow($b, $e) |
elevamento a potenza | pow(2, 4) → 16 |
sqrt($x) |
radice quadrata | sqrt(9) → 3 |
round($x) |
arrotonda all'intero più vicino | round(2.5) → 3 |
round: decimali da 0 a 4 → intero
precedente; da 5 a 9 → intero successivo (round(2.3) → 2).
datedate(formato) restituisce data e ora di
sistema secondo il formato indicato:
| Parametro | Significato |
|---|---|
H |
ora nel formato 24 ore (00-23) |
i |
minuti (00-59) |
s |
secondi (00-59) |
w |
giorno della settimana (0 = domenica, 6 = sabato) |
d |
giorno del mese (01-31) |
m |
mese (01-12) |
y / Y |
anno a due / quattro cifre |
<?php
$ora = date("H");
$minuti = date("i");
$secondi = date("s");
$nr_giorno_settimana = date("w");
$nr_mese = date("m");
$giorno_del_mese = date("d");
$anno = date("Y");
switch ($nr_giorno_settimana)
{
case 0: $giorno_settimana = "domenica"; break;
case 1: $giorno_settimana = "lunedi'"; break;
// ... casi da 2 a 5 ...
case 6: $giorno_settimana = "sabato";
}
switch ($nr_mese)
{
case 1: $mese = "Gennaio"; break;
// ... casi da 2 a 11 ...
case 12: $mese = "Dicembre";
}
print "Data odierna: $giorno_del_mese $mese $anno <br>";
print "Giorno della settimana: $giorno_settimana <br>";
print "Ora: $ora:$minuti:$secondi";
?>mktime(ora, minuti, secondi, mese, giorno, anno)
restituisce il timestamp di una data<?php
$giorno_1 = 12; $mese_1 = 1; $anno_1 = 2018;
$giorno_2 = 10; $mese_2 = 3; $anno_2 = 2018;
$timestamp_1 = mktime(0, 0, 0, $mese_1, $giorno_1, $anno_1);
$timestamp_2 = mktime(0, 0, 0, $mese_2, $giorno_2, $anno_2);
print "Data 1: $giorno_1/$mese_1/$anno_1 <br>";
print "Data 2: $giorno_2/$mese_2/$anno_2 <br>";
if ($timestamp_1 > $timestamp_2)
print "La data 1 e' quella piu' recente";
elseif ($timestamp_1 < $timestamp_2)
print "La data 2 e' quella piu' recente";
else
print "Le due date coincidono";
?><?php
$giorno_1 = 1; $mese_1 = 1; $anno_1 = 2018;
$giorno_2 = 12; $mese_2 = 1; $anno_2 = 2018;
$timestamp_1 = mktime(0, 0, 0, $mese_1, $giorno_1, $anno_1);
$timestamp_2 = mktime(0, 0, 0, $mese_2, $giorno_2, $anno_2);
$secondi_in_un_giorno = 60 * 60 * 24; // 86400
$giorni_trascorsi = ($timestamp_2 - $timestamp_1) / $secondi_in_un_giorno;
print "Giorni trascorsi: $giorni_trascorsi"; // 11
?>| Concetto | Sintassi PHP |
|---|---|
| Variabile | $nome = valore; |
| Cast | (int)$x, (float)$x, (string)$x |
| Concatenazione | $a . $b, $a . $b= |
| Selezione | if (...) { } elseif (...) { } else { } |
| Selezione multipla | switch ($x) { case ...: break; default: } |
| Concetto | Sintassi PHP |
|---|---|
| Cicli | for, while, do ... while, foreach |
| Array numerico | $a = [1, 2, 3]; $a[] = 4; |
| Array associativo | $a = ["k" => "v"]; |
| Scansione associativo | foreach ($a as $k => $v) |
| Funzione | function nome($p) { return ...; } |
| Parametro per riferimento | function f(&$p) { ... } |
Documentazione ufficiale: https://www.php.net/manual/it/