PHP 7.3
← Tilbage til versioner

PHP 7.3

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

Foto: Abu Saeid / Unsplash

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