📖 Om PHP 8.3
PHP 8.3 fokuserede på at finpudse eksisterende features og tilføje små men kraftfulde forbedringer. Typed class constants bragte type safety til endnu et område af PHP, hvilket gør det muligt at garantere at constants har den rigtige type. Readonly amendments fikser et stort problem med readonly properties ved at tillade cloning, hvilket er kritisk for mange design patterns. #[Override] attributten hjælper med at undgå bugs ved refactoring ved at sikre at metoder faktisk overrider noget. json_validate() er en meget efterspurgt performance optimization der tillader JSON validering uden at decode hele strukturen.
🎯 Nye Features
- ✓Typed Class Constants - Tilføj type declarations til class og interface constants
- ✓Dynamic Class Constant Fetch - Fetch class constants dynamisk med variabler: Foo::{$name}
- ✓Readonly Amendments - Clone readonly properties i __clone() metoden
- ✓json_validate() function - Valider JSON uden at decode hele strukturen
- ✓Randomizer Additions - getBytesFromString(), getFloat(), nextFloat() i Randomizer class
- ✓#[Override] Attribute - Marker metoder der skal override parent/interface metoder
- ✓Negative Indices in Arrays - Brug negative indices til at tælle bagfra i arrays
- ✓Anonymous readonly classes - Opret anonymous classes med readonly modifier
- ✓New mb_str_pad() function - Multibyte string padding funktion
- ✓Invariant DateTime support - DateTimeImmutable::createFromInterface() improvements
⚡ Performance Forbedringer
- ↗json_validate() er op til 100x hurtigere end json_decode() for validation
- ↗Optimeret garbage collection reducerer memory overhead med 5-10%
- ↗JIT compiler forbedringer for ARM64 arkitektur
- ↗Improved opcache performance med bedre memory management
⚠️ Breaking Changes
- !Mere streng typing i internal functions - nogle conversions er nu errors
- !assert() string evaluation er fjernet helt - brug kun booleans
- !Enkelte deprecated features fra PHP 8.x er fjernet
- !Changes til garbage collection kan påvirke memory usage patterns
- !SQLite3 exceptions i stedet for warnings i flere situationer
💡 Migration Tips
- →Tilføj typed class constants til dine interfaces for bedre type safety
- →Brug #[Override] attribute på alle override metoder for at undgå refactoring bugs
- →Erstat json_decode() med json_validate() hvor du kun skal validere JSON
- →Implementer __clone() i readonly classes der skal kunne clones
- →Test garbage collection behavior hvis du har memory-sensitive applikationer
- →Brug Randomizer::getBytesFromString() for custom character sets i random strings
🔄 Upgrade Path
PHP 8.2
→PHP 8.3
→PHP 8.4
ℹ️ Quick Info
Release Date
23. November 2023
Status
Current stable
End of Life
23. November 2026