FFI::cdef
(PHP 7 >= 7.4.0, PHP 8)
FFI::cdef — Creates a new FFI object
パラメータ
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 ornull
, platforms supportingRTLD_DEFAULT
attempt to lookup symbols declared incode
in the normal global scope. Other systems will fail to resolve these symbols.
戻り値
Returns the freshly created FFI object.
変更履歴
バージョン | 説明 |
---|---|
8.3.0 |
C functions returning void return a PHP null
instead of FFI\CType::TYPE_VOID.
|
8.0.0 |
lib is nullable now.
|
User Contributed Notes 1 note
You'll probably want to add a C header file, but as of the current version preprocessor directives do not work... so what do? On systems with GCC run the file through this command:
cpp -P /usr/include/unprocessedheader.h -o myprettyheader.h
Note that because preprocessing is not suppored in FFI, C/C++ macros are not supported either. You'll probably still have to write a small wrapper in C unless your library has an exceedingly simple public API.