函式名稱:variant_cast()
函式描述:variant_cast() 函式將一個 VARIANT 轉換為指定型別的值。
適用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7
語法:variant_cast ( variant $variant , int $type )
引數:
- variant: 要轉換的 VARIANT 值。
- type: 轉換的目標型別,可選值有以下常量:
- VT_NULL (1):將 VARIANT 轉換為 NULL。
- VT_EMPTY (0):將 VARIANT 轉換為空字串。
- VT_UI1 (17):將 VARIANT 轉換為無符號整數。
- VT_I2 (2):將 VARIANT 轉換為短整型。
- VT_I4 (3):將 VARIANT 轉換為長整型。
- VT_R4 (4):將 VARIANT 轉換為單精度浮點數。
- VT_R8 (5):將 VARIANT 轉換為雙精度浮點數。
- VT_BOOL (11):將 VARIANT 轉換為布林值。
- VT_BSTR (8):將 VARIANT 轉換為字串。
- VT_ARRAY (8192):將 VARIANT 轉換為陣列。
- VT_UNKNOWN (13):將 VARIANT 轉換為 COM 物件。
- VT_DISPATCH (9):將 VARIANT 轉換為 COM 物件。
返回值:成功時返回轉換後的值,失敗時返回 FALSE。
示例:
$variant = variant_init();
// 將 VARIANT 轉換為整數
variant_set_type($variant, VT_I4);
variant_set($variant, 10);
$intVal = variant_cast($variant, VT_I4);
echo $intVal; // 輸出:10
// 將 VARIANT 轉換為字串
variant_set_type($variant, VT_BSTR);
variant_set($variant, "Hello");
$strVal = variant_cast($variant, VT_BSTR);
echo $strVal; // 輸出:Hello
// 將 VARIANT 轉換為陣列
$arrayVal = variant_cast($variant, VT_ARRAY);
print_r($arrayVal); // 輸出:Array()
// 將 VARIANT 轉換為 COM 物件
$comObject = variant_cast($variant, VT_DISPATCH);
echo get_class($comObject); // 輸出:COM
注意事項:
- 在使用 variant_cast() 函式前,需要透過 variant_set_type() 函式將 VARIANT 設定為指定的型別。
- VARIANT 物件必須在使用前透過 variant_init() 函式進行初始化。
- 轉換為陣列時,如果 VARIANT 的值不能被轉換為陣列,則返回空陣列。
- 轉換為 COM 物件時,需要確保 PHP 環境支援 COM 物件相關功能。
- 在轉換失敗時,variant_cast() 函式返回 FALSE,因此在使用返回值前應進行錯誤檢查。