查詢

FFI::cdef()函式—用法及示例

「 定義C語言的函式、結構體和全域性變數,從而能夠在PHP中直接呼叫C語言的函式和訪問C語言的資料 」


函式名: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中啟用才能正常使用。

補充糾錯
上一個函式: FFI::free()函式
下一個函式: FFI::cast()函式
熱門PHP函式
分享連結