关于php:catchable致命错误:Object of class stdClass could not be converted to string


Catchable fatal error: Object of class stdClass could not be converted to string

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

Catchable fatal error: Object of class stdClass could not be converted to string in /files/function_20.php on line 70

在第70行,我发布了代码,函数运行得很好,只返回一个带有错误的空白页。

那条线怎么了?我该怎么纠正呢?

编辑:a var_dump$village_id$wg_village

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)
}


如果您引用的是object,则不能将其视为string。试着把它倒出来看看你能不能在里面引用一个财产

1
2
 var_dump($village_id);
 var_dump($wg_village);

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

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

失败的唯一原因是属性是protectedprivate,但这看起来像一个数据库结果集。

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


首先,您试图删除一个对象的内容。因此,首先要做以下的事情,看看$village_id$wg_village中有什么。您刚才使用了var_dump,但为了可读性,我更喜欢使用print_r标记:

1
2
3
echo '[cc lang="php"]';
print_r($village_id);
echo '

;回声"

1
2
3
';
print_r($wg_village);
echo '

";< /代码>

所以你也可以试着把事情弄清楚。但从我所读到的,似乎$village_id是一个值为80784的字符串,而$wg_village是一个对象。现在问题是,你到底想从$wg_village对象中得到什么?

您需要这样访问数据:

1
2
3
4
5
echo $wg_village->id;
echo $wg_village->name;
echo $wg_village->x;
echo $wg_village->y;
etc…