Todas las herramientas
Gratis

Una referencia de PHP 8.3+ buscable e imprimible: sintaxis, cadenas, arrays, funciones, clases, enums, atributos y funciones modernas. Gratis.

Básicos y tipos

10
declare(strict_types=1);
Impone verificación estricta de tipos escalares
$x = 1;
Las variables empiezan con un signo de dólar
const MAX = 100;
Constante en tiempo de compilación
gettype($x)
Obtiene el tipo de un valor
(int) $x
Convierte a entero
is_int($x)
Función de verificación de tipo (is_string, ...)
int|string $x
Declaración de tipo unión
?string $x
Tipo nullable (string o null)
$a ?? 'default'
Operador de fusión null
$a ??= 'default'
Asigna solo si es null

Strings

11
"Hello $name"
Las comillas dobles interpolan variables
'literal $x'
Las comillas simples son literales
$a . $b
Concatena strings
strlen($s)
Longitud en bytes de un string
str_contains($s, 'a')
Comprueba una subcadena
str_starts_with($s, 'a')
Comprueba el prefijo
substr($s, 0, 3)
Extrae parte de un string
str_replace('a', 'b', $s)
Reemplaza todas las apariciones
explode(',', $s)
Divide en un array
sprintf('%05.2f', $n)
Salida de string con formato
trim($s)
Elimina espacios al inicio y fin

Arrays

11
$a = [1, 2, 3];
Array indexado literal
$a = ['k' => 'v'];
Array asociativo
array_map(fn($x) => $x * 2, $a)
Transforma cada elemento
array_filter($a, fn($x) => $x > 0)
Conserva los elementos que coinciden
array_reduce($a, $fn, 0)
Reduce a un único valor
in_array($v, $a, true)
Comprobación estricta de valor
array_keys($a)
Obtiene todas las claves
array_merge($a, $b)
Fusiona arrays
[...$a, ...$b]
Expande/fusiona arrays
count($a)
Número de elementos
[$x, $y] = $a;
Desestructuración de arrays

Funciones

9
function f(int $a): int {}
Parámetros y retorno tipados
function f(int $a = 1) {}
Valor de parámetro por defecto
function f(int ...$nums) {}
Parámetros variádicos
f(...$args)
Expande argumentos
f(name: 'Sam', age: 30)
Argumentos con nombre
$fn = fn($x) => $x + 1;
Función flecha (captura el ámbito automáticamente)
function () use ($x) {}
Closure que captura una variable
$fn = strlen(...);
Sintaxis de callable de primera clase
function f(): never {}
Nunca retorna (lanza o sale)

Flujo de control

9
if ($a) {} elseif ($b) {} else {}
Ramas condicionales
$a ? $b : $c
Expresión ternaria
$a ?: $b
Ternario corto (respaldo si es falsy)
match ($x) { 1, 2 => 'a', default => 'b' }
Match estricto basado en expresiones
switch ($x) { case 1: break; }
Bifurcación múltiple no estricta
foreach ($a as $k => $v) {}
Itera claves y valores
for ($i = 0; $i < 10; $i++) {}
Bucle con contador
while ($cond) {}
Bucle mientras se cumple una condición
break / continue
Sale o salta una iteración del bucle

Clases y POO

10
class A extends B implements C {}
Herencia e interfaces
public function __construct(private int $id) {}
Promoción de propiedades en el constructor
public readonly string $name;
Inmutable tras la inicialización
public function f(): static {}
Devuelve el tipo de enlace tardío
static::create()
Enlace estático tardío
$obj?->method()
Llamada a método null-safe
abstract class A {}
No se puede instanciar directamente
trait T {} use T;
Código horizontal reutilizable
$obj instanceof A
Verificación de tipo en tiempo de ejecución
A::class
String del nombre de clase completo

Enums

9
enum Status { case Active; case Draft; }
Enumeración pura
enum Status: string { case A = 'a'; }
Enum respaldado (string/int)
Status::Active
Referencia un caso de enum
Status::from('a')
Construye desde un valor de respaldo
Status::tryFrom('x')
Devuelve null si no es válido
Status::cases()
Array de todos los casos
$status->value
Valor de respaldo de un caso
$status->name
Nombre del caso
enum E { public function label() {} }
Los enums pueden tener métodos

Manejo de errores

9
try {} catch (Throwable $e) {}
Captura errores y excepciones
catch (TypeError | ValueError $e)
Captura varios tipos
catch (Exception)
Catch sin captura (sin variable)
finally {}
Siempre se ejecuta tras try/catch
throw new RuntimeException('x')
Lanza una excepción
throw $e;
Relanza la excepción capturada
$x = $v ?? throw new Error();
Lanza como expresión
$e->getMessage()
Lee el mensaje de error
$e->getPrevious()
Obtiene la excepción encadenada

Atributos y moderno

9
#[Attribute] class Route {}
Declara un atributo personalizado
#[Route('/home')]
Aplica un atributo a un objetivo
new ReflectionClass($x)
Inspecciona una clase por reflexión
$ref->getAttributes()
Lee los atributos declarados
json_encode($data)
Serializa a JSON
json_decode($s, true)
Decodifica JSON a un array
array_is_list($a)
true si las claves son 0..n en orden
str_word_count($s)
Cuenta palabras en un string
$obj::class
Nombre de clase desde una instancia

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.