C のヘッダーファイルから C の宣言を読み込む

# FFI::load

(PHP 7 >= 7.4.0, PHP 8)

FFI::load — C のヘッダーファイルから C の宣言を読み込む

### 説明

public static function FFI::load(string `$filename`): ?FFI

C のヘッダーファイルから C の宣言を読み込みます。 読み込まれる C のヘッダーファイル内で特殊な define `FFI_LIB` を使うことで、 読み込む共有ライブラリを指定することが可能です。

### パラメータ

`filename`
  C のヘッダーファイル名。 C のプリプロセッサーディレクティブはサポートされていません。 例えば、`#include` や `#define`、プリプロセッサーマクロは動作しません。 ただし、次に挙げる特殊な場合を除きます。 このヘッダーファイルでは、`#define` 文で `FFI_SCOPE` 変数を定義すべきです (例: `#define FFI_SCOPE "MYLIB"`)。 詳しくは FFI クラスの概要 を参照してください。 このヘッダーファイルでは、`#define` 文で `FFI_LIB` 変数を定義することで、公開するライブラリを指定しても構いません。 それがシステムライブラリなら、必要なのはファイル名だけです (例: `#define FFI_LIB "libc.so.6"`)。カスタムライブラリなら、相対パスが必要です (例: `#define FFI_LIB "./mylib.so"`)。

### 戻り値

新しく作成された FFI オブジェクトを返します。 失敗時には `null` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | 現在のシステムユーザが `opcache.preload_user` 設定ディレクティブで定義されたユーザと同じである場合、 事前ロードスクリプト の中で FFI::load() を呼べるようになりました。

### 参考

- FFI::scope() - 事前ロード中にパースされた C の宣言を使って FFI オブジェクトをインスタンス化する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open