如何在字符串中输出for循环?

How to output a forloop in a string?

我正在尝试将具有多个属性的数据对象输出到 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();
}

使用串联并将值添加到 $body 变量:

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

这段代码有点无意义,除非$data真的是一个对象数组,每个对象都有一个名为property的属性。

如果你想提取一个对象的所有属性,迭代它们,因为PHP objects are iterable.

也没有必要使用局部变量; assemble 把字符串直接改成 $mail->Body:

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

我假设您需要 属性 名称和值。

(您可以删除后面的 $mail->Body = $body; 行)