5

Problem is in this: echo $village_id. "-" .$wg_village; It returns:

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

And on line 70 I posted the code that is there, function works perfectly, just returns blank page with an error.

What's wrong with that line? And how can I correct that?

EDIT: A var_dump $village_id and $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)
}
Machavity
  • 30,841
  • 27
  • 92
  • 100
user3063668
  • 57
  • 1
  • 1
  • 4
  • 1
    Either `$village_id` or `$wg_village` is an object rather than a number or string, so you can't just echo it. You need to echo some property of it. – Barmar May 09 '14 at 00:48
  • “…function works perfectly, just returns blank page with an error.” So the perfect is a blank page with an error? Then what is the issue? – Giacomo1968 May 09 '14 at 01:00

2 Answers2

5

If you're referencing an object you can't treat it as a string. Try dumping it out and see if you can reference a property inside

 var_dump($village_id);
 var_dump($wg_village);

So now that we have a dump, let's try to access those properties

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

The only reason that should fail is if the property is protected or private, but this looks like a database result set.

You have to reference the properties using the -> operator. You cannot call them directly. This thread describes that in more detail.

Community
  • 1
  • 1
Machavity
  • 30,841
  • 27
  • 92
  • 100
3

First, you are trying to echo the contents of an object. So first do the following to see what’s in $village_id as well as $wg_village. You just used var_dump but I prefer to use print_r with <pre> tags for readability:

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

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

So you can try that as well to make things clearer. But from what I am reading, it seems like $village_id is a string with the value of 80784 while $wg_village is an object. Now the thing is, what exactly do you want to get from the $wg_village object?

You would need to access that data like this:

echo $wg_village->id;
echo $wg_village->name;
echo $wg_village->x;
echo $wg_village->y;
etc…
Giacomo1968
  • 25,759
  • 11
  • 71
  • 103