Php/docs/ffi.examples-complete
来自菜鸟教程
A Complete PHP/FFI/preloading Example
php.ini
ffi.enable=preload opcache.preload=preload.php
preload.php
<?phpFFI::load(__DIR__ . "/dummy.h");opcache_compile_file(__DIR__ . "/dummy.php");?>
dummy.h
#define FFI_SCOPE "DUMMY" #define FFI_LIB "libc.so.6" int printf(const char *format, ...);
dummy.php
<?phpfinal class Dummy { private static $ffi = null; function __construct() { if (is_null(self::$ffi)) { self::$ffi = FFI::scope("DUMMY"); } } function printf($format, ...$args) { return (int)self::$ffi->printf($format, ...$args); }}?>
test.php
<?php$d = new Dummy();$d->printf("Hello %s!\n", "world");?>