PHP8 FFI::new — 创建 C 数据结构
(PHP 7 >= 7.4.0, PHP 8)
FFI::new — 创建 C 数据结构
说明
public static FFI::new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public FFI::new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
创建给定 C 类型的本机数据结构。如果静态调用此方法,则它只能使用预定义的 C 类型名称(例如 int、char 等);如果该方法作为实例方法调用,则允许为该实例声明的任何类型。
参数
type
type
是作为字符串的有效 C 声明,或者是已创建的 FFI\CType 实例。owned
是否创建自有(即托管)数据或非托管数据。托管数据与返回的 FFI\CData 对象一起存在,并在常规 PHP 引用计数或 GC 释放对该对象的最后一个引用时释放。当不再需要时,应通过调用 FFI::free() 来释放非托管数据。
persistent
是否在系统堆(使用 malloc())或 PHP 请求堆(使用 emalloc())上永久分配 C 数据结构。
返回值
返回新创建的 FFI\CData 对象,失败时返回 null。