setcookie() および setrawcookie() 関数は、次のようなシグネチャもサポートするようになりました:
$options は
    "expires", "path",
    "domain", "secure",
    "httponly" および "samesite"
    をキーとして受け付ける連想配列です。
   
  
    error_log が
    syslog に設定された場合、
    ロギングをカスタマイズするため、次の ini ディレクティブが追加されました:
    syslog:
    
all,
        no-ctrl そして ascii です。
        PHP 7.3.8 以降では、
        それより前のバージョンでの振る舞いを復元する raw も使えます。
        このフィルタは、syslog() をコールした際にも影響します。
       
      cyclic GC が改良されました。かなりのパフォーマンスの向上に繋がる可能性があります。
    var_export() 関数は、
    存在しないメソッド stdClass::__setState()
    を使わず、
    オブジェクトにキャストされた配列
    ((object) array( ... )) として stdClass を
    エクスポートするようになりました。
   
debug_zval_dump() 関数は、再帰的な配列やオブジェクトを表示する方法が、 var_dump() と同じになるように変更されました。 そうした配列やオブジェクトは、もはや二度表示されません。
array_push() および array_unshift() 関数は、単一の引数でも呼び出せるようになりました。これは spread演算子と共に使うと特に便利です。
   使われていなかった定数 PHPDBG_FILE,
   PHPDBG_METHOD, PHPDBG_LINENO
   および
   PHPDBG_FUNC が削除されました。
  
getallheaders() 関数も利用可能になりました。
libcurl ≥ 7.15.5 が必須になりました。
   FILTER_VALIDATE_FLOAT 定数が
   thousand オプションもサポートしました。
   これにより、受け入れ可能な千単位のセパレーター文字を指定できます。
   デフォルト ("',.")
   は、以前のPHPのバージョンと完全に互換性があります。
  
   magic_quotes フィルタ
   (FILTER_SANITIZE_MAGIC_QUOTES) のエイリアスとして
   FILTER_SANITIZE_ADD_SLASHES 
   が追加されました。
   magic_quotes フィルタは、将来のPHPで削除される予定です。
  
   デフォルトの転送モードが binary になりました。
  
   PHP が ICU 56 以降とリンクされた場合、Normalizer::NONE は推奨されません。
  
   NFKC_Casefold 正規化のために、
   Normalizer::normalize() メソッドの引数として
   normalizer::form_kc_cf が追加されました。
   これは、ICU 56 以降で利用可能です。
  
   新しいフラグ JSON_THROW_ON_ERROR が追加されました。
   これは json_decode() や 
   json_encode() 関数で使うことができ、
   エラー時に JsonException
   をスローできるようになります。
   これは、グローバルなエラー状態 json_last_error() や
   json_last_error_msg() を取得する代わりに使えます。
   JSON_PARTIAL_OUTPUT_ON_ERROR は、
   JSON_THROW_ON_ERROR に優先します。
  
configure オプション --with-libmbfl は利用できなくなりました。
   birdstep.max_links ini ディレクティブを含む、
   ODBCRouter と Birdstep
   のサポートが削除されました。
  
   opcache.inherited_hack ini
   ディレクティブは削除されました。
   この値は、PHP 5.3.0 から既に無視されていました。
  
   ssl ストリームオプション
   min_proto_version および
   max_proto_version が
   指定可能な TLS プロトコルに関連する定数とともに追加されました。
  
PCRE拡張 は PCRE2 にアップグレードされました。 これによって振る舞いが少し変更される可能性があります (たとえば、 クラス中の文字の範囲がより厳密に解釈されるなど) し、 既に存在している正規表現の文法が増えるかもしれません。
   preg_quote() 関数は '#'
   もエスケープするようになりました。
  
   空の行セットを自動的にスキップできるようにするために、
   PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
   属性が追加されました。
  
   TDS バージョンを公開するための属性として、
   PDO::DBLIB_ATTR_TDS_VERSION が追加されました。
  
DATETIME2 型のカラムは、DATETIME型の絡むと同様に扱われるようになりました。
   SQLite3 データベースは、
   新しい PDO::SQLITE_ATTR_OPEN_FLAGS 属性を
   PDO::SQLITE_OPEN_READONLY に設定することにより、
   読み取り専用としてオープンできるようになりました。
  
session_set_cookie_params() 関数は、以下のシグネチャもサポートしました:
$options は、
   "lifetime", "path",
   "domain", "secure",
   "httponly" および "samesite"
   を指定可能な連想配列です。
   それに応じて、 session_get_cookie_params()
   関数の戻り値にも "samesite" が含まれるようになりました。
   さらに、Cookie の SameSite ディレクティブのデフォルト値を設定するため、
   新しい session.cookie_samesite ini
   オプションが追加されました。この値のデフォルト値は 
   "" (空文字列) なので、SameSite
   ディレクティブは設定されません。
   この値には、"Lax" または "Strict"
   が設定でき、それぞれが SameSiteディレクティブに設定されます。
  
 
   » tidyp
   抜きでビルドすることが透過的にサポートされました。tidyp
   はリリース日を取得するAPIを提供していないため、
   tidyp 抜きで PHP がビルドされた場合、
   tidy_get_release() や tidy::getRelease()
   は 'unknown' を返します。
  
拡張モジュールが libxml を使ってビルドされた場合には、 xml_set_external_entity_ref_handler() 関数のコールバックの戻り値が無視されることはなくなりました。 このバージョン以前はコールバックの戻り値が無視され、パースが止まりませんでした。
PHP にバンドルされている libzip を使ってビルドすることは推奨されません。 しかし、--without-libzip を configure オプションに指定することにより、まだバンドルされた libzip を使ってビルド可能です。
望ましい圧縮レベルの設定を楽にするために、compress.zlib ラッパー の zlib/level コンテキストオプション が追加されました。
