PHP вопрос про конкатенацию

263
20 января 2018, 01:33

Есть такой фрагмент кода:

return '<div class="chatboard">
<div id="dialogs"><div class="title">'.lastdialogs.'</div><ul>'.$dialogs.'</ul></div>
<div id="msgboard"><div class="title">'.messages.'</div>'.$msg.'</div>
<form id="msgform" onsubmit="sendchat('.$this->types['chat'].'); return false;">
<textarea id="msgtextarea" placeholder="'.yourmessage.'" maxlength="1000"></textarea>
<button class="btndefault" id="msgbtn">'.send.'</button>
</form>
</div>';

Возможно ли сделать так:

return '<div class="chatboard">
<div id="dialogs"><div class="title">'.lastdialogs.'</div><ul>'.$dialogs.'</ul></div>
<div id="msgboard"><div class="title">'.messages.'</div>'.$msg.'</div>
здесь проверка, если определенная переменная равна значению, то выводим этот отрезок кода
<form id="msgform" onsubmit="sendchat('.$this->types['chat'].'); return false;">
<textarea id="msgtextarea" placeholder="'.yourmessage.'" maxlength="1000"></textarea>
<button class="btndefault" id="msgbtn">'.send.'</button>
</form>
если переменная не равна, то этот фрагмент не будет возвращен
</div>';
Answer 1

Вариант 1 - присвоить переменной:

$code = '<div class="chatboard">
<div id="dialogs"><div class="title">'.lastdialogs.'</div><ul>'.$dialogs.'</ul></div>
<div id="msgboard"><div class="title">'.messages.'</div>'.$msg.'</div>';
if(условие)
{
    $code .= '<form id="msgform" onsubmit="sendchat('.$this->types['chat'].'); return false;">
    <textarea id="msgtextarea" placeholder="'.yourmessage.'" maxlength="1000"></textarea>
    <button class="btndefault" id="msgbtn">'.send.'</button>
    </form>';
}
$code .= '</div>';
return $code;

Вариант 2 - пишем в том же стиле(в общей куче):

return '<div class="chatboard">
<div id="dialogs"><div class="title">'.lastdialogs.'</div><ul>'.$dialogs.'</ul></div>
<div id="msgboard"><div class="title">'.messages.'</div>'.$msg.'</div>
'.((условие) ? '<form id="msgform" onsubmit="sendchat('.$this->types['chat'].'); return false;">
<textarea id="msgtextarea" placeholder="'.yourmessage.'" maxlength="1000"></textarea>
<button class="btndefault" id="msgbtn">'.send.'</button>
</form>' : '').
</div>';
READ ALSO
Какой правильный формат запроса к БД для работы с полем даты

Какой правильный формат запроса к БД для работы с полем даты

У меня такая ситуацияЕсть бд где есть поле date_add

219
Что делать с неиспользуемым методом в наследуемом классе?

Что делать с неиспользуемым методом в наследуемом классе?

Есть базовый абстрактный класс с некоторыми методами

372
qmake и несколько целей

qmake и несколько целей

здравствуйте, есть проект такой структуры: хочу чтоб при сборке qmake mainpro && make собирались подпроекты сервера и клиента:

252