gpt4 book ai didi

php - 使用变体在 PHP 中构建字节数组?

转载 作者:可可西里 更新时间:2023-10-31 23:34:53 29 4
gpt4 key购买 nike

我正在尝试使用 Variants 在 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) ;

代码产生错误:

Fatal error: Uncaught exception'com_exception' with message 'Varianttype conversion failed: Type mismatch.type conversion failed: Type mismatch.

我尝试了来自 http://fi2.php.net/manual/en/com.constants.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)(可能有帮助,我可能跑题了)

/* Only perform conversion if variant not already of type passed */
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)
*/

关于php - 使用变体在 PHP 中构建字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3686624/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com