函式名稱:FFI::addr() 適用版本:PHP 7.4.0 及以上版本
用法: FFI::addr() 函式用於獲取給定變數的記憶體地址。
語法:
public static function addr($var): CData|FFI\CData|null
引數:
$var
:要獲取記憶體地址的變數。
返回值:
- 如果成功獲取到變數的記憶體地址,將返回一個 CData 物件,該物件可用於與外部庫進行互動。
- 如果無法獲取到變數的記憶體地址,將返回 null。
示例:
$intVar = 42;
$address = FFI::addr($intVar);
if ($address !== null) {
echo "變數的記憶體地址為: " . FFI::cast("uintptr_t", $address) . "\n";
} else {
echo "無法獲取變數的記憶體地址\n";
}
上述示例中,我們定義了一個整數變數 $intVar
,然後使用 FFI::addr()
函式獲取該變數的記憶體地址。如果成功獲取到地址,我們將使用 FFI::cast()
函式將地址轉換為 uintptr_t
型別,並輸出到控制檯上。如果無法獲取到地址,則輸出一條錯誤資訊。
請注意,FFI::addr()
函式僅在使用了 FFI
擴充套件的 PHP 版本中可用。它允許與外部 C 程式碼進行互動,使得 PHP 可以直接操作記憶體。