В моем коде 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 \servoir.php: 125 Трассировка стека # 0 C: \ xampp \ htdocs \ waterCompany \servoir.php (125): option_cast (объект (вариант), 12) # 1 {основной} брошенный в C: \ xampp \ htdocs \ waterCompany \servoir.php в строке 125.
Задача ещё не решена.
Других решений пока нет …