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,#defineand CPP macros do not work. lib- 
     
The name of a shared library file, to be loaded and linked with the definitions.
注意:
If
libis omitted ornull, platforms supportingRTLD_DEFAULTattempt to lookup symbols declared incodein 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.
       | 
     
用户贡献的备注 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.