(PHP 7 >= 7.4.0, PHP 8)
Объекты этого класса создаются фабричными методами FFI::cdef(), FFI::load() и FFI::scope(). Объявленные переменные языка C доступны как свойства экземпляра класса FFI, а функции как методы. Методы FFI::new() и FFI::type() принимают или возвращают объявленные типы языка C, когда создают структуры данных C.
Разбор объявлений FFI и загрузка разделяемой библиотеки может занять значительное время. Не имеет смысла делать это для каждого HTTP-запроса в Web-окружении. Тем не менее можно перезагрузить объявления FFI и библиотеки при старте PHP и инстанциировать объекты класса FFI по необходимости. Заголовочные файлы могут быть расширены специальными объявлениями FFI_SCOPE
(например, #define FFI_SCOPE "foo"
; скоуп по умолчанию — «C») и загружены методом FFI::load() во время предзагрузки. Это приведёт к созданию постоянных привязок, которые будут доступны для всех запросов через метод FFI::scope(). Более подробно читайте на странице Простые примеры использования класса FFI.
В один и тот же скоуп можно предзагрузить несколько заголовочных файлов.