我的PHP代码中有一个COM对象' $ com_myObject'用方法' myObjectMethod'在我运行之后
com_print_type info($com_myObject);
在它上面,它表明它有方法' myObjectMethod'声明如下所示
myObjectMethod(/* VT_VARIANT [12] [in] */ $RawData) { /* Processes entered object data */ }
在我的代码中我有另一个函数返回一个变体对象' $ myInputObject'类型值16396.我计划使用' $ myInputObject'作为' myObjectMethod'的输入值方法。
print variant_get_type($myInputObject); //returns 16396
我正在检索' $ myInputObject'如下所示,这个其他COM功能,即功能'
$myInputObject = $com_myObject->ofunction;
我假设来自' myObjectMethod'方法声明我应该传递一个VT_VARIANT对象,即一个变体类型12,但是我的另一个函数' ofunction'返回应该是' myObjectMethod'的输入值。是16396类型的变体对象。
我试图将类型为16396的变体对象转换为类型12的变体对象,如下所示
$com_myObject->myObjectMethod(variant_cast($myInputObject, VT_VARIANT));
但是我收到以下错误。
致命错误:未捕获的异常' com_exception'消息'变体类型转换失败:类型不匹配。'在C:\ xampp \ htdocs \ waterCompany \ reservoir.php:125堆栈跟踪#0 C:\ xampp \ htdocs \ waterCompany \ reservoir.php(125):variant_cast(对象(变体),12)#1 {main}抛出在第125行的C:\ xampp \ htdocs \ waterCompany \ reservoir.php中。