← Tilbage til versioner
PHP 7.1
Nullable types, void return type, iterable pseudo-type og class constant visibility
📖 Om PHP 7.1
PHP 7.1 videreudviklede type systemet fra PHP 7.0 med flere kraftfulde features der gjorde koden mere udtryksfuld og sikker. Nullable types løste et stort problem fra PHP 7.0 ved at tillade explicit null values i type declarations. Void return type gjorde API kontrakter klarere for metoder der ikke skulle returnere noget. Iterable pseudo-type var perfekt til funktioner der accepterer både arrays og iterators. Multi-catch exception handling reducerede code duplication markant i error handling. Class constant visibility gav bedre encapsulation ved at tillade protected og private konstanter.
🎯 Nye Features
- ✓Nullable Types - Tillad explicit null values i type declarations med ? prefix (?string)
- ✓Void Return Type - Indiker at en funktion ikke returner en værdi
- ✓Iterable Pseudo-type - Type hint for arrays eller Traversable objekter
- ✓Multi-catch Exception Handling - Catch multiple exception typer i samme block
- ✓Class Constant Visibility - Public, protected og private modifiers på class constants
- ✓Symmetric Array Destructuring - Kortere list() syntax med [] for destructuring
- ✓Support for Keys in list() - Destructure associative arrays med nøgler
- ✓Negative String Offsets - Access string characters fra slutningen med negative indexes
- ✓Convert Callables to Closure - Closure::fromCallable() til at konvertere callables
- ✓Asynchronous Signal Handling - pcntl_async_signals() for sikker signal håndtering
- ✓HTTP/2 Server Push Support - Native support i ext/curl for HTTP/2 push
⚡ Performance Forbedringer
- ↗5-10% generel performance forbedring over PHP 7.0
- ↗Optimeret array destructuring er hurtigere end list()
- ↗Nullable types har minimal runtime overhead
- ↗Forbedret JIT-friendly opcode generation
⚠️ Breaking Changes
- !Throw on passing too few function arguments - tidligere returnerede null
- !Forbud mod dynamiske calls til scope introspection functions (extract, compact, etc.)
- !Invalid class, interface og trait navne thrower nu ParseError
- !Session ID generation uden entropy source thrower nu fejl
- !String offset access med empty string eller float er nu illegal
- !Rand() aliaser bruger nu Mersenne Twister i stedet for libc rand
💡 Migration Tips
- →Brug nullable types (?Type) i stedet for docblock @param Type|null annotations
- →Tilføj void return type til metoder der ikke returnerer værdier
- →Refactor multi-type iterators til at bruge iterable type hint
- →Kombiner lignende catch blocks med multi-catch syntax
- →Tilføj visibility modifiers til class constants for bedre encapsulation
- →Erstat list() med kortere [] syntax i destructuring assignments
🔄 Upgrade Path
PHP 7.0
→PHP 7.1
→PHP 7.2
ℹ️ Quick Info
Release Date
1. December 2016
Status
End of Life
End of Life
1. December 2019