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