#php
#php
Вопрос:
Я пытаюсь включить цикл ‘for’ (повторяющийся элемент с динамическим содержимым) внутри одной переменной, которая затем используется в качестве ‘тела’ электронного письма.
Я пробовал использовать EOD — поскольку я по сути повторяю текст и соответствующие переменные, но, похоже, это не принимает цикл ‘for’. Простите навыки новичка в PHP. Спасибо.
Я пытаюсь сделать что-то вроде этого:
$body =
for ($prod_count = 1; $prod_count <= $_SESSION['review_counter']; $prod_count ) {
...
loop over relevant incremental variables
...
};
…позже этот $body используется во что-то вроде (вот почему я хочу его как единую переменную)…
$success = mail($webMaster, $emailSubject, $body, $headers);
Ответ №1:
Взгляните на foreach
https://www.php.net/manual/en/control-structures.foreach.php
С помощью простого for
ваш код должен выглядеть примерно так: ниже
for ($prod_count = 1; $prod_count <= $_SESSION['review_counter']; $prod_count ) {
$body[$prod_count] = "something";
};
Комментарии:
1. Разве это не даст мне несколько переменных $body, к которым добавляется число? ie: $body1, $ body2 и т.д. Мне нужна одна переменная $body, которая содержит динамический номер повторяющегося элемента.
2. Это даст вам массив с именем $body, где вы можете получить доступ к каждой переменной с помощью $body [1], $body [2] и т. Д
3. Спасибо за быстрый ответ — очень признателен. Я использую это и функцию implode, чтобы собрать массив в одну строку.
4. Пожалуйста, подумайте о том, чтобы отметить ответ, если это помогло вам решить вашу проблему. Таким образом, другие пользователи с той же проблемой легко найдут ее
Ответ №2:
Создайте функцию, подобную приведенной ниже, и верните переменную $body, которую вы можете отправить по электронной почте.
<code>
function generate_body_text($prod_count) {
$body = '';
for($prod_count = 1; $prod_count <= $_SESSION['review_counter']; $prod_count ) {
//your logic
};
return $body;
}
$body = generate_body_text($prod_count);
$success = mail($webMaster, $emailSubject, $body, $headers);
</code>
Комментарии:
1. Спасибо. Этот функциональный метод также выглядит хорошо. Я использовал описанный выше метод, преобразовав массив в одну строку. (Я принял метод array — но у меня нет опыта, чтобы знать, лучше это или нет, или по каким причинам).
2. Если есть какие-то манипуляции с основным текстом, то это хороший подход, позволяющий сделать ваш код понятным и удобным для чтения. Если тогда есть только однострочная строка, тогда метод массива хорош.