函式名:FFI::cdef()
適用版本:PHP 7.4及以上版本
用法:FFI::cdef()函式用於定義C語言的函式、結構體和全域性變數,從而能夠在PHP中直接呼叫C語言的函式和訪問C語言的資料。該函式的原型如下:
public static function cdef(string $code, string $lib = null): bool
引數說明:
- $code:表示C語言的程式碼,可以是函式宣告、結構體定義或全域性變數宣告等。
- $lib(可選):表示C語言的庫名稱,用於指定程式碼所屬的庫。如果不指定,則會將程式碼新增到預設的全域性名稱空間中。
返回值:如果程式碼定義成功,則返回true;否則返回false。
示例:
// 定義C語言的函式宣告
$ffi = FFI::cdef("
int add(int a, int b);
", "mylib.so");
// 呼叫C語言的函式
$result = $ffi->add(2, 3);
echo $result; // 輸出:5
在上述示例中,我們使用FFI::cdef()函式定義了一個C語言的函式宣告add(int a, int b),並指定該程式碼屬於"mylib.so"庫。然後,我們可以透過$ffi物件來呼叫該C語言函式,並傳遞引數。最後,我們輸出了函式的返回值。
需要注意的是,FFI::cdef()函式依賴於FFI擴充套件,該擴充套件必須在PHP中啟用才能正常使用。