← Tilbage til versioner

PHP 7.3

Flexible heredoc/nowdoc syntax, array_key_first/last, is_countable og JSON fejlhåndtering

📖 Om PHP 7.3

PHP 7.3 var primært en polish release der fokuserede på developer experience og kvalitetslivsforbedringer. Flexible heredoc/nowdoc syntax var en game-changer for kode læsbarhed ved at fjerne de frustrerende indentation requirements. JSON_THROW_ON_ERROR introducerede moderne exception-based error handling for JSON operations i stedet for at skulle tjekke json_last_error(). array_key_first() og array_key_last() fyldte et irriterende hul i PHP's array API. PCRE2 migration bragte moderne regex capabilities og bedre Unicode support. Same Site cookie support hjalp med at beskytte mod CSRF attacks med minimal kode ændringer.

🎯 Nye Features

  • Flexible Heredoc/Nowdoc Syntax - Ingen indentation requirements på closing marker
  • Trailing Commas in Function Calls - Tilføj trailing comma i function arguments
  • array_key_first() og array_key_last() - Få første/sidste array key uden reset()
  • is_countable() Function - Tjek om en variable kan tælles før count() call
  • JSON_THROW_ON_ERROR - Moderne exception-based error handling for JSON functions
  • PCRE2 Migration - Opdateret regex engine med bedre Unicode og performance
  • Same Site Cookie Support - SameSite attribute for bedre CSRF protection
  • Argon2id Password Hashing - Hybride Argon2 variant med bedre sikkerhed
  • list() Reference Assignment - Brug references i list() destructuring
  • instanceof allows Literals - Brug string literals direkte i instanceof checks
  • CompileError Exception - Mere specifik exception for compilation errors
  • Case-insensitive Constants Deprecated - Kun case-sensitive konstanter fremover

⚡ Performance Forbedringer

  • PCRE2 regex engine er op til 20% hurtigere i komplekse patterns
  • Optimeret array_key_first/last er hurtigere end reset()+key() kombination
  • JSON parsing med JSON_THROW_ON_ERROR har minimal overhead
  • Reference assignment i list() eliminerer unødvendige copies

⚠️ Breaking Changes

  • !Heredoc/Nowdoc closing marker skal stå alene på linjen (ingen whitespace)
  • !Continue targeting switch genererer nu warning - brug break i stedet
  • !Case-insensitive constants er deprecated - definer kun case-sensitive
  • !assert() med string argument er deprecated - brug boolean expressions
  • !Underscore numeric literal separator kan ikke være i start/slut af tal
  • !image2wbmp() er deprecated - brug imagewbmp() i stedet

💡 Migration Tips

  • Brug JSON_THROW_ON_ERROR flag i json_decode/encode for bedre error handling
  • Refactor heredoc/nowdoc strings til at bruge flexible syntax for læsbarhed
  • Erstat reset()+key() patterns med array_key_first/last() functions
  • Tilføj is_countable() checks før count() på mixed-type variables
  • Opdater cookie settings til at inkludere samesite parameter for sikkerhed
  • Migrer continue statements i switch til break for at undgå warnings

🔄 Upgrade Path

PHP 7.2
PHP 7.3
PHP 7.4

ℹ️ Quick Info

Release Date
6. December 2018
Status
End of Life
End of Life
6. December 2021