Как вывести форл oop в строку? - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь вывести объект данных с несколькими свойствами в строку в phpmailer, как мне этого добиться?

function sendMailTo($mail, $data, $subject_, $toEmail) {
    $body = 'all data:' foreach ($data as $obj) {
        $obj->property;
    }

    $mail->ClearAllRecipients();
    $mail->AddAddress($toEmail);
    $mail->FromName = $data->inputName;
    $mail->From = $email;
    $mail->Subject = $subject_;
    $mail->IsHTML(true);
    $mail->Body = $body;
    $mail->AddReplyTo($toEmail, $data->inputName);
    $mail->send();
}

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Этот код немного бессмысленен, если только $data не является действительно массивом объектов, каждый из которых имеет свойство, называемое property.

Если вы хотите извлечь все свойства объекта, выполните итерацию их, потому что PHP объекты итерируемы .

Также нет необходимости использовать локальную переменную; собрать строку прямо в $mail->Body:

$mail->Body = "All data:\r\n";
foreach ($data as $property => $value) {
    $mail->Body .= "$property = $value\r\n";
}

Я предполагал, что вам нужны и имена, и значения свойств.

(и вы можете удалить более позднюю строку, в которой написано $mail->Body = $body;)

0 голосов
/ 10 июля 2020

Используйте конкатенацию и добавьте значения к $body переменной:

$body = 'all data:';
foreach ($data as $obj) {
    $body .= $obj->property;
}
...