2013-08-01 3 views
1

Надеюсь, вы можете мне помочь. У меня есть эта ошибка в моем php-коде, и я не могу понять, что мне нужно изменить и где. Он показывает, что в этой строке, где он находится в звездах.Ловкая фатальная ошибка: объект класса stdClass не может быть преобразован в строку в

Вот мой код:

private function replaceFile($id, $file, $version) { 

    global $CFG; 
    $source = get_record('procedure_log','procedure_id', $id); 
    $destination = $CFG->dataroot . "/procedures/$id/$version/"; 
    @mkdir($destination, 0777, true); 
    $dataobject = new stdClass(); 
    $dataobject->id = $this->logId; 
    $dataobject->file = addslashes($destination . $file['name']); 
    **copy(var_dump($source.$file['name'], $destination.$file['name']));** 
} 
+0

Вам нужно узнать, как [READ and debug] (http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) сообщения об ошибках. Все, что вам нужно для решения проблемы, было в сообщении об ошибке. Где-то вы пытаетесь использовать объект, как если бы это была строка, например $ source, например, – Anigel

+0

: http://stackoverflow.com/questions/5032687/php-catchable-fatal-error-object-of-class -stdclass-can-not-be-convert-to-s –

ответ

1

$source, вероятно, объект, и вы не можете использовать его как строку (вы пытались сделать это путем объединения с $file['name'] строки с помощью точки). Вы должны выбрать, что хотите добавить к этой строке.

+1

Не знаете, как они могут добавить __toString() в stdClass – Anigel

+0

@Anigel Правильно, он не может :) Но он может указать, что он хочет добавить в строку. –

+0

Cool +1 теперь его отредактировал – Anigel

1

Функция get_record, вероятно, возвращает объект, а не строку, которую вы назначаете в переменной $source. Вам нужно проверить, что это значение переменной $source, эхо его.

И вы получите свою точную проблему.

+1

Спасибо всем, кто пытался мне помочь в этот дождливый день :) – Erika

Смежные вопросы

 Смежные вопросы