可捕获的致命错误:类stdClass的对象无法转换为字符串

时间:2014-05-09 00:43:01

标签: php

问题在于:echo $village_id. "-" .$wg_village; 它返回:

  

捕获致命错误:第70行的/files/function_20.php中无法将类stdClass的对象转换为字符串

在第70行,我发布了代码,功能完美,只返回错误的空白页。

这条线有什么问题?我该如何纠正?

编辑var_dump $village_id$wg_village

string(5) "80784"
object(stdClass)#25 (35) {
  ["id"]=> string(5) "80784"
  ["name"]=> string(7) "NewName"
  ["x"]=> string(3) "-99"
  ["y"]=> string(3) "-14"
  ["kind_id"]=> string(1) "5"
  ["user_id"]=> string(1) "1"
  ["rs1"]=> int(36000) ["rs2"]=> int(36000)
  ["rs3"]=> int(36000) ["rs4"]=> int(36000)
  ["workers"]=> string(2) "51"
  ["troop_keep"]=> string(1) "0"
  ["time_update_rs1"]=> string(19) "2014-05-09 01:45:30"
  ["time_update_rs2"]=> string(19) "2014-05-09 01:45:30"
  ["time_update_rs3"]=> string(19) "2014-05-09 01:45:30"
  ["time_update_rs4"]=> string(19) "2014-05-09 01:45:30"
  ["nation_id"]=> string(1) "2" ["merchant_underaway"]=> string(1) "0"
  ["child_id"]=> string(0) "" ["cp"]=> string(3) "104"
  ["cpupdate_time"]=> string(19) "2014-05-08 21:49:55"
  ["krs1"]=> string(1) "1"
  ["krs2"]=> string(1) "1"
  ["krs3"]=> string(1) "1"
  ["krs4"]=> string(1) "1"
  ["faith"]=> string(1) "3"
  ["faith_time"]=> string(19) "2014-05-07 22:05:44"
  ["dateCreate_vila"]=> string(19) "2014-05-05 20:38:26"
  ["capa123"]=> int(36000)
  ["capa4"]=> int(36000)
  ["speedIncreaseRS1"]=> float(1000)
  ["speedIncreaseRS2"]=> float(600)
  ["speedIncreaseRS3"]=> float(800)
  ["speedIncreaseRS4"]=> float(1200)
  ["speedIncreaseRS4Real"]=> float(1149)
}

2 个答案:

答案 0 :(得分:2)

如果您引用object,则无法将其视为string。尝试将其转储出去,看看你是否可以在

中引用一个属性
 var_dump($village_id);
 var_dump($wg_village);

现在我们有一个转储,让我们尝试访问这些属性

 echo $village_id. "-" .$wg_village->name;

应该失败的唯一原因是属性是protected还是private,但这看起来像数据库结果集。

您必须使用->运算符引用属性。你不能直接打电话给他们。 This thread更详细地描述了这一点。

答案 1 :(得分:0)

首先,您尝试echo对象的内容。首先,请执行以下操作,了解$village_id以及$wg_village中的内容。您刚刚使用了var_dump,但我更倾向于使用带有print_r标记的<pre>来提高可读性:

echo '<pre>'; 
print_r($village_id);
echo '</pre>'; 

echo '<pre>'; 
print_r($wg_village);
echo '</pre>'; 

所以你也可以试着让事情更清楚。但是从我正在阅读的内容来看,似乎$village_id是一个值为80784的字符串,而$wg_village是一个对象。现在问题是,你想从$wg_village对象得到什么?

您需要像这样访问这些数据:

echo $wg_village->id;
echo $wg_village->name;
echo $wg_village->x;
echo $wg_village->y;
etc…