php8.5
Home/ Manual/ reference / ffi/ Main interface to C code and data

Main interface to C code and data

Objects of this class are created by the factory methods FFI::cdef, FFI::load or FFI::scope. Defined C variables are made available as properties of the FFI instance, and defined C functions are made available as methods of the FFI instance. Declared C types can be used to create new C data structures using FFI::new and FFI::type.

Intro

Objects of this class are created by the factory methods FFI::cdef, FFI::load or FFI::scope. Defined C variables are made available as properties of the FFI instance, and defined C functions are made available as methods of the FFI instance. Declared C types can be used to create new C data structures using FFI::new and FFI::type.

FFI definition parsing and shared library loading may take significant time. It is not useful to do it on each HTTP request in a Web environment. However, it is possible to preload FFI definitions and libraries at PHP startup, and to instantiate FFI objects when necessary. Header files may be extended with special FFI_SCOPE defines (e.g. #define FFI_SCOPE "foo"; the default scope is "C") and then loaded by FFI::load during preloading. This leads to the creation of a persistent binding, that will be available to all the following requests through FFI::scope. Refer to the complete PHP/FFI/preloading example for details.

It is possible to preload more than one C header file into the same scope.

Class synopsis

final FFI { }

Predefined Constants

FFI::__BIGGEST_ALIGNMENT__

Ffi

In this section

Source: reference/ffi/ffi.xml · from the official PHP manual (php/doc-en)