Построение байтового массива в PHP с вариантами?

Я пытаюсь построить массив байтов в PHP с использованием вариантов . Однако я не могу заставить его работать. Вот пример кода:

$ie = new COM("InternetExplorer.Application"); $ie->Visible = true; $ie->Height = 500 ; $ie->Width = 700 ; $post = array (ord('p'),ord('='),ord('1')) ; $v = new VARIANT($post, VT_ARRAY|VT_UI1); $ie->Navigate2("http://host/web/echo_request.php",0,'',$v) ; 

Код вызывает ошибку:

Неустранимая ошибка: Не удалось исключить «com_exception» с сообщением «Не удалось преобразовать тип варианта: Ошибка преобразования типа mismatch.type: введите несоответствие.

Я попытался использовать всевозможные комбинации для типа варианта из http://fi2.php.net/manual/en/com.constants.php

Любая помощь очень ценится!

Solutions Collecting From Web of "Построение байтового массива в PHP с вариантами?"

(с PHP 5.3.2)
Разве это не будет просто VT_ARRAY? (или пустой тип)

 $post = array (ord('p'),ord('='),ord('1')); $v = new VARIANT($post, VT_ARRAY); print variant_get_type($v); 

(ПРИМЕЧАНИЕ: это оставляет VT_ARRAY из него, т.е.)

 $v = new VARIANT($post); 

Распечатывается 8024. 8024 – 8192 = 12. 12 = VT_VARIANT

Или я чего-то не хватает?

Если вы хотите использовать VT_UI1, вам придется создавать варианты отдельно, т.е.

 $v = new VARIANT(ord('p'), VT_UI1); 

Но я предполагаю, что тебе нужен первый путь.

Это из исходного кода PHP (PHP 5.3.3) (может помочь, я мог бы отключиться)

/ * Выполнять только преобразование, если вариант уже не пройден * * /
if ((ZEND_NUM_ARGS ()> = 2) && (vt! = V_VT (& obj-> v))) {

  /* If already an array and VT_ARRAY is passed then: - if only VT_ARRAY passed then do not perform a conversion - if VT_ARRAY plus other type passed then perform conversion but will probably fail (origional behavior) */