|  | 
 
 新機能
  PHP コア
   8進数の整数リテラルのプレフィックス指定
    8進数の整数値の場合に、
    数値リテラルのプレフィックスとして明示的に
    0oや0Oを指定できるようになりました。
    これは、2進数や16進数の整数リテラルの表記と似ています。 
   文字列をキーとして持つ配列のアンパック
    文字列をキーとして持つ 配列をアンパック できるようになりました。
     
   引数を展開した後の名前付き引数
    引数を ... で展開した後に、名前付き引数を指定できるようになりました。
    
    e.g.
    foo(...$args, named: $arg).
    
   ファイルアップロード時の full-path キーのサポート
    ファイルアップロード時に、
    追加で 
    full_pathキーを指定できるようになりました。
    これにより、アップロードされるファイルの
    (basename ではなく)
    フルパスを指定できます。
    これは、
    "webkitdirectory" 属性
    と組み合わせて使うことを意図しています。 
   列挙型(Enum)
    列挙型
    のサポートが追加されました。
    
    
   ファイバー(Fibers)
    ファイバー
    のサポートが追加されました。
    
    
   第一級callableを生成する記法
    myFunc(...)という記法 で、
    callable から無名関数を生成できるようになりました。
    これは、Closure::fromCallable('myFunc')と同等です。 注意: 
    
     ...は文法の一部であり、省略形ではありません。
 
   Never 型
    戻り値にのみ指定できる型として、
    新しく never 型が追加されました。
    これは、関数が exit するか、
    例外をスローするか、終了しないことを示します。
    
    
   初期化時の new式の許可
    new ClassName()式が、引数のデフォルト値の初期化時、
    static 変数の初期化時、グローバルな定数の初期化時、
    およびアトリビュートの引数として許可されるようになりました。
    オブジェクトが define に渡せるようにもなっています。 
   読み取り専用プロパティ
    プロパティに対して、readonly が指定できるようになりました。
    
    
  CURL
   CURLOPT_DOH_URLオプションが追加されました。 
   libcurl >= 7.71.0 で、
   証明書を blob 経由で扱うためのオプションが追加されました。
   
   
    CURLOPT_ISSUERCERT_BLOB
    CURLOPT_PROXY_ISSUERCERT
    CURLOPT_PROXY_ISSUERCERT_BLOB
    CURLOPT_PROXY_SSLCERT_BLOB
    CURLOPT_PROXY_SSLKEY_BLOB
    CURLOPT_SSLCERT_BLOB
    CURLOPT_SSLKEY_BLOB 
   ファイルをファイル経由ではなく、
   文字列で POST するために使える
   CURLStringFile クラスが追加されました。
    
  FPM
   OpenMetrics status フォーマットが追加されました。
   これは、Prometheus が FPM のメトリクスを取得する用途に使います。
   
   pm.max_spawn_rateと呼ばれる、
   動的なプロセスマネージャーのための、
   新しいプールオプションが追加されました。
   これを指定することで、
   動的なプロセスマネージャーを選択した場合に、
   高速にたくさんの子プロセスが起動できるようになります。
   これのデフォルト値は32で、
   以前からハードコーディングされていたものです。 
  GD
   libgd に Avif のサポートが組み込まれている場合に、
   imagecreatefromavif と
   imageavif
   で Avif が使えるようになりました。
   
  Hash
   hash,
   hash_file,
   hash_init 関数に、
   オプションの引数 optionsが追加されました。
   これによって、ハッシュアルゴリズム特有のデータを渡せるようになります。 
   MurmurHash3
    ストリーミングをサポートした
    MurmurHash3のサポートが追加されました。
    以下のバリアントが実装されています: 
    
     murmur3a, 32-bit hash
    
     murmur3c, 128-bit hash for x86
    
     murmur3f, 128-bit hash for x64
     
    ハッシュの初期ステートを
    引数 optionsのseedキーを通じて渡すことができます。
    たとえば、以下のように書くことができます: 
    有効な seed の値は
     0 から
    プラットフォーム定義の  UINT_MAX までです。
    この値は、通常は  4294967295 です。
   
   
   xxHash
    xxHashのサポートが追加されました。
    以下のバリアントが実装されています: 
    
     xxh32, 32-bit hash
    
     xxh64, 64-bit hash
    
     xxh3, 64-bit hash
    
     xxh128, 128-bit hash
     
    ハッシュの初期ステートを
    引数 optionsのseedキーを通じて渡すことができます。
    たとえば、以下のように書くことができます: 
    以下のようにして、シークレットを引数  options の
     secret キーを通じて渡すこともできます:
     
    カスタムのシークレットの品質が、
    生成されるハッシュ値の品質に重大な影響を及ぼします。
    できる限りエントロピーが高いシークレットを使うことを強く推奨します。
   
   
  MySQLi
   実行時に引数をバインド
     mysqli_stmt::execute
    に配列を指定することで、引数をバインドできるようになりました。
    全ての値が、文字列としてバインドされます。
    (連想配列でない) リストだけを指定できます。
    この新機能は、MySQLi を libmysqlclient
    を使ってコンパイルしている場合には利用できません。
    
     
   新しいメソッド  mysqli_result::fetch_column
     mysqli_result::fetch_column
    が追加されました。これによって、
    結果セットから単一のスカラー値を取得することができるようになります。
    この新しいメソッドは、
    オプションの引数 columnに 0 から始まる整数値を指定することで、
    どのカラムから情報を取得するかを指定できます。 
  PDO
   PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY属性が追加されました。
   これによって、ファイルを読み込むことを許可するディレクトリを指定できます。
   これは、PDO::MYSQL_ATTR_LOCAL_INFILEが無効の場合にだけ意味があります。
   なぜなら、
   この場合に全てのディレクトリからのファイルの読み込みが許可されるからです。 
  PDO_SQLite
   SQLite の
   "file:"DSN 記法がサポートされるようになり、
   追加のフラグも指定できるようになりました。
   この機能は、open_basedir が設定されている場合は使えません。 
  POSIX
   POSIX_RLIMIT_KQUEUESとPOSIX_RLIMIT_NPTSが追加されました。
   これらの rlimits は、FreeBSD でのみ利用可能です。 
  標準ライブラリ
   fputcsv は、
   新しい引数 eolを受け入れるようになりました。
   これによって、カスタムの改行文字を定義できるようになります。
   デフォルトは以前と同じで、"\n"のままです。 
  Standard PHP Library(SPL)
    SplFileObject::fputcsv は、
   新しい引数 eolを受け入れるようになりました。
   これによって、カスタムの改行文字を定義できるようになります。
   デフォルトは以前と同じで、"\n"のままです。 |