(PHP 7 >= 7.4.0, PHP 8)
此类的对象由工厂方法 FFI::cdef()、FFI::load() 或 FFI::scope() 创建。定义的 C 变量作为 FFI 实例的属性提供,定义的 C 函数作为 FFI 实例的方法提供。声明的 C 类型可用于使用 FFI::new() 和 FFI::type() 创建新的 C 数据结构。
FFI 定义解析和共享库加载可能需要大量时间。在 Web 环境中,在每次 HTTP 请求时执行此操作没有意义。但是,可以在 PHP 启动时预加载 FFI 定义和库,并在需要时实例化 FFI 对象。头文件可以使用特殊的 FFI_SCOPE
定义进行扩展(例如 #define FFI_SCOPE "foo"
;默认范围为“C”),然后在预加载期间由 FFI::load() 加载。这将创建一个持久绑定,它将通过 FFI::scope() 对所有后续请求可用。有关详细信息,请参阅 完整的 PHP/FFI/预加载示例。
可以在同一个范围内预加载多个 C 头文件。