Scheda di Riferimento PHP
Un riferimento ricercabile e stampabile di PHP 8.3+ — sintassi, stringhe, array, funzioni, classi, enum, attributi e funzionalità moderne. Gratis.
Basi e tipi
10declare(strict_types=1);
Impone controlli di tipo scalare rigorosi
$x = 1;
Le variabili iniziano con il simbolo del dollaro
const MAX = 100;
Costante in fase di compilazione
gettype($x)
Ottiene il tipo di un valore
(int) $x
Converte in intero
is_int($x)
Helper di controllo tipo (is_string, ...)
int|string $x
Dichiarazione di tipo unione
?string $x
Tipo nullable (string o null)
$a ?? 'default'
Operatore di coalescenza null
$a ??= 'default'
Assegna solo se null
Stringhe
11"Hello $name"
Le doppie virgolette interpolano le variabili
'literal $x'
Le singole virgolette sono letterali
$a . $b
Concatena stringhe
strlen($s)
Lunghezza in byte di una stringa
str_contains($s, 'a')
Verifica una sottostringa
str_starts_with($s, 'a')
Verifica il prefisso
substr($s, 0, 3)
Estrae parte di una stringa
str_replace('a', 'b', $s)
Sostituisce tutte le occorrenze
explode(',', $s)
Divide in un array
sprintf('%05.2f', $n)
Output di stringa formattata
trim($s)
Rimuove gli spazi circostanti
Array
11$a = [1, 2, 3];
Literal di array indicizzato
$a = ['k' => 'v'];
Array associativo
array_map(fn($x) => $x * 2, $a)
Trasforma ogni elemento
array_filter($a, fn($x) => $x > 0)
Mantiene gli elementi corrispondenti
array_reduce($a, $fn, 0)
Riduce a un singolo valore
in_array($v, $a, true)
Controllo di valore rigoroso
array_keys($a)
Ottiene tutte le chiavi
array_merge($a, $b)
Unisce array
[...$a, ...$b]
Espande/unisce array
count($a)
Numero di elementi
[$x, $y] = $a;
Destrutturazione di array
Funzioni
9function f(int $a): int {}
Parametri e return tipizzati
function f(int $a = 1) {}
Valore predefinito del parametro
function f(int ...$nums) {}
Parametri variadici
f(...$args)
Espande gli argomenti
f(name: 'Sam', age: 30)
Argomenti con nome
$fn = fn($x) => $x + 1;
Arrow function (cattura lo scope automaticamente)
function () use ($x) {}
Closure che cattura una variabile
$fn = strlen(...);
Sintassi callable di prima classe
function f(): never {}
Non restituisce mai (lancia o esce)
Controllo di flusso
9if ($a) {} elseif ($b) {} else {}
Rami condizionali
$a ? $b : $c
Espressione ternaria
$a ?: $b
Ternario breve (fallback su valori falsy)
match ($x) { 1, 2 => 'a', default => 'b' }
match rigoroso, basato su espressioni
switch ($x) { case 1: break; }
Ramificazione multipla non rigorosa
foreach ($a as $k => $v) {}
Itera chiavi e valori
for ($i = 0; $i < 10; $i++) {}
Ciclo con contatore
while ($cond) {}
Cicla finché una condizione è vera
break / continue
Esce o salta un'iterazione del ciclo
Classi e OOP
10class A extends B implements C {}
Ereditarietà e interfacce
public function __construct(private int $id) {}
Promozione delle proprietà nel costruttore
public readonly string $name;
Immutabile dopo l'inizializzazione
public function f(): static {}
Restituisce il tipo a binding tardivo
static::create()
Late static binding
$obj?->method()
Chiamata di metodo null-safe
abstract class A {}
Non può essere istanziata direttamente
trait T {} use T;
Codice orizzontale riutilizzabile
$obj instanceof A
Controllo di tipo a runtime
A::class
Stringa del nome di classe completo
Enum
9enum Status { case Active; case Draft; }
Enumerazione pura
enum Status: string { case A = 'a'; }
Enum con valore (string/int)
Status::Active
Riferimento a un caso di enum
Status::from('a')
Costruisce da un valore di supporto
Status::tryFrom('x')
Restituisce null se non valido
Status::cases()
Array di tutti i casi
$status->value
Valore di supporto di un caso
$status->name
Nome del caso
enum E { public function label() {} }
Gli enum possono avere metodi
Gestione degli errori
9try {} catch (Throwable $e) {}
Cattura errori ed eccezioni
catch (TypeError | ValueError $e)
Cattura tipi multipli
catch (Exception)
catch senza cattura (nessuna variabile)
finally {}
Eseguito sempre dopo try/catch
throw new RuntimeException('x')
Lancia un'eccezione
throw $e;
Rilancia l'eccezione catturata
$x = $v ?? throw new Error();
Lancia come espressione
$e->getMessage()
Legge il messaggio di errore
$e->getPrevious()
Ottiene l'eccezione concatenata
Attributi e funzionalità moderne
9#[Attribute] class Route {}
Dichiara un attributo personalizzato
#[Route('/home')]
Applica un attributo a un target
new ReflectionClass($x)
Ispeziona una classe tramite reflection
$ref->getAttributes()
Legge gli attributi dichiarati
json_encode($data)
Serializza in JSON
json_decode($s, true)
Decodifica JSON in un array
array_is_list($a)
true se le chiavi sono 0..n in ordine
str_word_count($s)
Conta le parole in una stringa
$obj::class
Nome di classe da un'istanza
Nessuna voce corrisponde a “:q”.
Hai bisogno di aiuto?
Hai riscontrato un problema con questo strumento? Faccelo sapere.