【PHP8.x】vfprintf関数の使い方

作成日: 更新日:

vfprintf関数は、書式指定された文字列を、指定されたファイルストリームに書き込む関数です。この関数は、fprintf関数と機能が似ていますが、書式指定子に対応する値を配列として受け取る点が最大の特徴です。

第一引数にはfopen()などで開かれたファイルへのポインタを、第二引数には%s%dといったプレースホルダーを含む書式指定文字列を渡します。そして、第三引数として、これらのプレースホルダーに対応する値を格納した配列を指定します。

この配列渡しにより、引数の数が動的に変化する場合や、可変長引数を扱う高レベルな関数内で利用する際に、柔軟な書式付き出力が可能になります。ファイルのログ出力や、整形されたデータ生成など、多岐にわたる場面で活用できます。

関数は成功すると実際にファイルに書き込まれたバイト数を整数で返します。書き込み中にエラーが発生した場合はfalseを返しますので、戻り値を確認して適切にエラーハンドリングを行うことが重要です。

基本的な使い方

構文(syntax)

vfprintf(resource $handle, string $format, array $args): int|false

引数(parameters)

$stream, string $format, array $values

  • resource|object $stream: 書き込み先のファイルポインタまたはストリームを指定します。
  • string $format: フォーマット文字列を指定します。printf()関数と同様の書式指定子を使用できます。
  • array $values: フォーマット文字列で使用する値の配列を指定します。

戻り値(return)

int|false

引数として与えられたファイルポインタに指定されたフォーマットで文字列を書き込み、書き込まれたバイト数を返します。失敗した場合は false を返します。