【发布时间】:2011-01-26 01:47:51
【问题描述】:
我正在使用一个返回多维 VARIANT 数组 (vt_array) 的 COM 对象,并且我正在尝试从该数组中读取值。
当我使用print_r($mdArray) 时,它会显示variant Object。
(variant_get_type($mdArray) 返回8204。)
我尝试使用foreach ($mdArray as $oneArray),但收到消息:
警告:Loader::getfields() [loader.getfields]: 只能处理 一维变体数组(这 数组有 2) 在 C:\Inetpub\wwwroot\root\script\fileloader.php 在第 135 行致命错误:未捕获 带有消息的异常“异常” '类型变量的对象没有创建 一个迭代器'在 C:\Inetpub\wwwroot\root\script\fileloader.php:135 堆栈跟踪:#0 C:\Inetpub\wwwroot\root\script\fileloader.php(135): 加载器::getfields() #1 C:\Inetpub\wwwroot\root\testloader.php(21): Loader->getfields() #2 {main} 抛出 在 C:\Inetpub\wwwroot\root\script\fileloader.php 在第 135 行
(foreach 循环在第 135 行)
我能得到的关于数组的唯一信息是使用count($mdArray),它返回8。
如果这里有人有读取多维 VARIANT 数组的经验,请告诉我如何做到这一点。
【问题讨论】:
-
您知道 com 对象是用哪种语言编写的数组的确切类/类型吗?我已经担心您可能不得不尝试在 VB 中解析数组...提示:
$vb_control = new COM("MSScriptControl.ScriptControl"); -
你也试过
for ($x=0; $x < count($mdArray); $x++) $oneArray = $mdArray[$x];循环吗? -
我尝试了 $oneArray = $mdArray[0] 并且整个脚本因以下消息而崩溃:FastCGI 错误 FastCGI 处理程序无法处理请求。错误详细信息:* FastCGI 进程意外退出 * 错误号:-2147467259 (0x80004005)。 * 错误描述:未指定的错误 HTTP 错误 500 - 服务器错误。 Internet 信息服务 (IIS)
-
我唯一知道的是它是一个多维数组,每个单独的数组包含 2 个字符串。我不知道数组是如何实现的或用于创建数组的类/类型。我是这份工作的新手,我正在尝试使用一个 COM 对象,该对象是由离开公司且我无法联系的人编写的。
标签: php multidimensional-array variant comobject