函式名:FFI\CType::getStructFieldOffset()
適用版本:PHP 7.4+
用法:該函式用於獲取結構體欄位的偏移量。
示例:
<?php
// 定義結構體
$ffi = FFI::cdef("
struct Point {
int x;
int y;
};
", "C");
// 獲取欄位偏移量
$offset = FFI\CType::getStructFieldOffset($ffi->type('struct Point'), 'y');
echo "欄位 y 的偏移量為:$offset\n";
?>
輸出結果為:
欄位 y 的偏移量為:4
解釋:在上述示例中,首先透過FFI的cdef()方法定義了一個名為Point的結構體,該結構體包含兩個整型欄位x和y。然後使用FFI\CType::getStructFieldOffset()函式獲取了結構體欄位y的偏移量,並將結果列印輸出。在這個例子中,由於欄位x的型別是int,佔用4個位元組的記憶體空間,所以欄位y的偏移量為4。