肥皂数据给出致命错误:不能使用类型为stdClass的对象作为数组
我正在使用PHP从soap api中检索数据。 但无法获取数组中的数据。 每次它给我错误
致命错误:不能使用类型为stdClass的对象作为数组
stdClass对象(
[item] => Array
(
[0] => stdClass Object
(
[date] => 2008-07-17T01:23:06Z
[directory] => 1
[downloadCount] => 0
[downloadLink] => http://www.example.com/folder/8ISxjbEs/_online.html
[empty] =>
[id] => 8290268
[md5] =>
[name] =>
[parentId] => -1
[removed] =>
[shared] =>
[size] => 17
[version] => 0
)
[1] => stdClass Object
(
[date] => 2009-11-03T23:03:15Z
[directory] =>
[downloadCount] => 5
[downloadLink] => http://www.example.com/file/mIofv-vJ/MASTER-ACCOUNTS_3_Nov_2009.html
[empty] =>
[id] => 146103085
[md5] => b073b9573227843e25d19e0e9e60ce80
[name] => MASTER-ACCOUNTS 3 Nov 2009.zip
[parentId] => 8290268
[removed] =>
[shared] =>
[size] => 3401447
[version] => 0
)
) )
好吧,我正在使用4shared API。
// 4shared上的用户凭据
$user_login = "email_123@hotmail.com";
$user_password = "password";
$client = new SoapClient("https://api.4shared.com/jax2/DesktopApp?wsdl", array(
"cache_wsdl" => WSDL_CACHE_DISK,
"trace" => 1,
"exceptions" => 0
)
);
$client->yourFunction();
//Getting list of all folders
echo "<pre>";
$getAllItems = $client->getAllItems ($user_login, $user_password);
print_r ($getAllItems);
这段代码正在打印上面的stdClass对象。 但我无法将其转换为数组。
你有没有尝试使用get_object_vars()转换; 功能?
<?php
function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
?>
*我知道这有点迟,但我在为我的问题寻找解决方案时遇到了这个问题,所以这里是我的2美分:)
http://www.if-not-true-then-false.com/2009/php-tip-convert-stdclass-object-to-multidimensional-array-and-convert-multidimensional-array-to-stdclass-object/
您可以尝试将该对象转换为数组:
class myClass {
...
}
$myobj = new myClass();
$myArrObj = (Array) $myobj;
或者你可以尝试迭代这个对象,并使用get_object_vars将所有元素推送到一个新的数组中
链接地址: http://www.djcxy.com/p/64861.html上一篇: Soap data gives Fatal error: Cannot use object of type stdClass as array in