0

Suppose, I have a function such as: [$data is a 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 is the function with optional parameters. However, I get an error: Object of class stdClass could not be converted to string

4

1 回答 1

1

我假设您以以下形式调用您的函数:

$data = new stdClass();
test_3($data);

然后,当您在else语句中结束时,这将失败,并且您无法将 stdClass() 连接到字符串(在本例中为“世界”)。

更多评论表明您的实际函数调用是test_3($data->name),并且$data->name很可能是 stdClass() 而不是可以与“世界”连接的字符串。

作为参考,如果您有错误,提供错误对应的实际行号会很有帮助。. . 我猜这个错误是由于 concat 造成的,因为这是我看到 stdClass() 到字符串转换的唯一地方是必要的。

于 2013-06-17T20:36:20.937 回答