Функция php с необязательными параметрами, использующими stdClass
Предположим, у меня есть такая функция, как: [$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
1 ответ
Я предполагаю, что вы вызвали свою функцию в форме:
$data = new stdClass();
test_3($data);
Это терпит неудачу тогда, когда вы в конечном итоге в else
оператора, и вы не можете объединить stdClass() со строкой (в данном случае "World").
Немного больше обзора предполагает, что ваш фактический вызов функции test_3($data->name)
, а также $data->name
скорее всего, stdClass() вместо строки, которую можно объединить с помощью "World".
Для справки, если у вас есть ошибка, было бы полезно указать фактический номер строки, которой соответствует ошибка.,, Я предполагаю, что ошибка происходит из-за concat, так как это единственное место, где я вижу преобразование stdClass() в строку.