类stdClass的PHP数组对象无法转换为字符串
我从SOAP客户端得到以下参数作为响应。参数串行设备显示了第一个值,然后给出错误,因为类stdClass的对象无法转换为字符串。我有很多值在串行设备参数下,它是一个数组。所以我不知道如何显示所有的值 代码: 正在尝试显示此代码的结果:类stdClass的PHP数组对象无法转换为字符串,php,arrays,soap,parameters,Php,Arrays,Soap,Parameters,我从SOAP客户端得到以下参数作为响应。参数串行设备显示了第一个值,然后给出错误,因为类stdClass的对象无法转换为字符串。我有很多值在串行设备参数下,它是一个数组。所以我不知道如何显示所有的值 代码: 正在尝试显示此代码的结果: if($parameter['aktion'] == 'getVehicle') { ob_start(); var_dump(Login()); $s = ob_get_clean(); $returned_ar
if($parameter['aktion'] == 'getVehicle')
{
ob_start();
var_dump(Login());
$s = ob_get_clean();
$returned_array=getVehicleValuation();
foreach($returned_array as $objects)
{
foreach($objects as $key => $obj)
{
echo "key.: " . $key . "<br>";
echo $obj->Code . "<br>";
echo $obj->Desc_Short . "<br>";
echo $obj->Desc_Long . "<br>";
echo $obj->Esaco . "<br>";
}
}
}
如果$result->vehicle->SerialEquipment返回一个数组,您可能应该使用该数组来填充键“SerialEquipment”的值 尝试打印结果->车辆->串行设备;在php代码中调查内容 现在由你决定你想用它做什么。是否要将该阵列的完整内容传输到密钥“串行设备”中?或者只是一些价值观 如果您希望将来自$result->vehicle->SerialEquipment的整个结构打包成一个字符串,请查看JSON。 Json可以将数组转换为字符串,您可以指定字符串 在分配给密钥“串行设备”之前打包,因此它包含一个字符串。 收到后打开包装 请看这里: 及
由于返回值是一个数组,因此必须对其项进行循环。 试试像这样的东西
foreach($returned_array as $key => $val) {
if (is_array($val)) {
echo $key . ' => ' . "<br/>";
foreach($val as $k => $v) {
echo ' ' . $k . ' ' . $v . '<br/>';
}
}
else {
echo $key . ' ' . $val . '<br/>';
}
}
这是一个代码示例,可以对其进行扩展,并编写一个递归函数,该函数将显示一个更复杂的结构,如下所示:我尝试使用您的循环,如果我在代码中不使用串行设备,它可以正常工作,但当我使用它时,它会给出一个错误作为可捕获的致命错误:stdClass类的对象无法在中转换为字符串/www/1/html/webservices/schwackeNet/index.php,我们在其中编写了echo“”$"$v这意味着一些$v是对象,您必须专门处理它。这是我上面提到的更复杂的结构的一个例子:您可以尝试我链接的调试函数,在这种情况下应该会对您有所帮助;我不明白。请你指出我可以在哪里对此进行更改..这只是显示此阵列所需的一个小更改请检查更新的问题我已经显示了SerialEquipment的输出结果抱歉,我必须走了,但是如果你想尝试我的函数,把它放在你的代码中,试着调试$returned\u数组。很抱歉,我想显示串行设备的完整aray结果,因为这对我来说是非常重要的参数。我没有使用Json编码-解码,所以不知道如何使用它。你能用我的例子告诉我吗?
array (size=1)
'Serial Equipment' =>
array (size=41)
0 =>
object(stdClass)[6]
public 'Code' => int 204093
public 'Desc_Short' => string 'Ablagefach mittig in Gepäckraumtrennwand;ESACO_UG(122)' (length=55)
public 'Desc_Long' => string 'Ablagefach mittig in Gepäckraumtrennwand inkl. verschiebbarem Haltenetz' (length=72)
public 'Esaco' =>
object(stdClass)[7]
...
1 =>
object(stdClass)[8]
public 'Code' => int 160452
public 'Desc_Short' => string 'Airbag für Fahrer und Beifahrer, 2-stufi;ESACO_UG(103)' (length=55)
public 'Desc_Long' => string 'Airbag für Fahrer und Beifahrer 2-stufig' (length=41)
public 'Esaco' =>
array (size=2)
...
2 =>
object(stdClass)[11]
public 'Code' => int 195607
public 'Desc_Short' => string 'Airbag: Kopf- u. Seiten - Airbags vorn;ESACO_UG(104,102)' (length=56)
public 'Desc_Long' => string 'Airbag: Seitenairbag für Fahrer und Beifahrer (Kopf/Thorax)' (length=60)
public 'Esaco' =>
array (size=2)
...
foreach($returned_array as $key => $val) {
if (is_array($val)) {
echo $key . ' => ' . "<br/>";
foreach($val as $k => $v) {
echo ' ' . $k . ' ' . $v . '<br/>';
}
}
else {
echo $key . ' ' . $val . '<br/>';
}
}