У меня в моем 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, т.е. 'ofunction'.
$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} throw в C: \ xampp \ htdocs \ waterCompany \ reservoir.php в строке 125.