FFI::cdef

Creates a new FFI object

&reftitle.description; public static `FFI` `FFI::cdef` `string` `code`"" ``string``null```lib`&null;

Creates a new FFI object.

&reftitle.parameters;

`code`

- A string containing a sequence of declarations in regular C language (types, structures, functions, variables, etc). Actually, this string may be copy-pasted from C header files.

  C preprocessor directives are not supported, i.e. `#include`, `#define` and CPP macros do not work.

`lib`

- The name of a shared library file, to be loaded and linked with the definitions.

  If `lib` is omitted or &null;, platforms supporting `RTLD_DEFAULT` attempt to lookup symbols declared in `code` in the normal global scope. Other systems will fail to resolve these symbols.

&reftitle.returnvalues;

Returns the freshly created `FFI` object.

&reftitle.changelog;

&Version; | &Description;
8.3.0 | C functions returning `void` return a PHP `null` instead of `FFI\CType::TYPE_VOID`.
8.0.0 | `lib` is nullable now.