假设我有一个函数,例如:[$data
是stdClass()
]
function test_1{
...
...
if (somecondition){
$data->name = NULL;
test_2($data->name);
}
else{
$data->name = 'hello';
test_2($data->name);
}
...
...
}
function test_2($data){
if (!empty($data->name)){
test_3($data->name);
}
else{
test_3();
}
}
function test_3($s = ''){
if (!empty($s)){
//do something
}
else{
$s .= 'World';
}
}
test_3
是带有可选参数的函数。
但是,我收到错误:Object of class stdClass could not be converted to string
答案 0 :(得分:1)
我假设您以以下形式调用您的函数:
$data = new stdClass();
test_3($data);
当你最终进入else
语句时,这就失败了,你无法将stdClass()连接到一个字符串(在本例中为'World')。
更多评论表明您的实际函数调用是test_3($data->name)
,$data->name
可能是stdClass()而不是可以与'World'连接的字符串。
作为参考,如果您有错误,提供错误对应的实际行号会很有帮助。 。 。我猜这个错误是由于concat,因为那是我唯一需要stdClass()到字符串转换的地方。