我在视图中有这个工作代码:
<?php
$task_num = 0;
foreach ($curent_day->getTasksList() as $task){
echo '<div class="task">';
echo '<span class="task_id">'.($task_num+1).'.'.'</span>';
echo '<div class="task_time">';
echo '<span class="task_time_start">'.$task->getStartTime().'</span>';
echo '<span class="task_time_finish">'.$task->getFinishTime().'</span>';
echo '</div>';
echo '<a href="/" class="task_name">'.$task->name.'</a>';
echo '<a href="/" class="btn task_start btn_disabled">Start</a>';
echo '<a href="/" class="btn task_finish btn_disabled">Finish</a>';
echo '<div class="status_round '.$task->status.'"></div>';
echo '</div>';
$task_num++;
}
?>
有没有办法摆脱'回声'? 附:并且即使需要更多空间,使用HTML帮助程序插入HTML的方式更正确吗?
答案 0 :(得分:1)
您可以完全删除echo
并使用本机HTML语法:
<?php $task_num = 0 ?>
<?php foreach ($curent_day->getTasksList() as $task): ?>
<div class='task'>
<span class='task_id'><?= ++$task_num ?></span>
<div class='task_time'>
<span class='task_time_start'><?= $task->getStartTime() ?></span>
<span class='task_time_finish'><?= $task->getFinishTime() ?></span>
</div>
<a href='/' class='task_name'><?= $task->name ?></a>
<a href='/' class='btn task_start btn_disabled'>Start</a>
<a href='/' class='btn task_finish btn_disabled'>Finish</a>
<div class='status_round <?= $task->status ?>'></div>
</div>
<?php endforeach ?>
这将为您在IDE /编辑器中提供更好的语法突出显示和自动格式化支持。
答案 1 :(得分:0)
有几种不同的方法可以使用单引号和双引号连接字符串,或者使用变量和“。=”运算符将文本附加到字符串的末尾。只是google php strings&amp;连接,它将超过你需要解决这个问题。
但是在这里使用你的例子是一种方法:
$task_num = 0;
foreach ($curent_day->getTasksList() as $task){
echo
'<div class="task">' .
'<span class="task_id">' . ($task_num+1) . '.'.'</span>' .
'<div class="task_time">' .
'<span class="task_time_start">' . $task->getStartTime() . '</span>' .
'<span class="task_time_finish">' . $task->getFinishTime() . '</span>' .
'</div>' .
'<a href="/" class="task_name">'.$task->name.'</a>' .
'<a href="/" class="btn task_start btn_disabled">Start</a>' .
'<a href="/" class="btn task_finish btn_disabled">Finish</a>' .
'<div class="status_round '.$task->status.'"></div>' .
'</div>';
$task_num++;
}
您必须回显以将数据输出到浏览器。
答案 2 :(得分:0)
您不需要使用字符串连接或多个echo语句。
<强>替代强>
$task_num = 0;
foreach ($curent_day->getTasksList() as $task){
$task_num++;
echo
"<div class='task'>
<span class='task_id'>{$task_num}</span>
<div class='task_time'>
<span class='task_time_start'>{$task->getStartTime()}</span>
<span class='task_time_finish'>{$task->getFinishTime()}</span>
</div>
<a href='/' class='task_name'>{$task->name}</a>
<a href='/' class='btn task_start btn_disabled'>Start</a>
<a href='/' class='btn task_finish btn_disabled'>Finish</a>
<div class='status_round {$task->status}'></div>
</div>";
}
答案 3 :(得分:0)
您可以在一个变量中连接html,然后可以将它与一次回声语句一起使用
<?php
$task_num = 0;
$html = '';
foreach ($curent_day->getTasksList() as $task){
$html .= '<div class="task">';
$html .= '<span class="task_id">'.($task_num+1).'.'.'</span>';
$html .= '<div class="task_time">';
$html .= '<span class="task_time_start">'.$task->getStartTime().'</span>';
$html .= '<span class="task_time_finish">'.$task->getFinishTime().'</span>';
$html .= '</div>';
$html .= '<a href="/" class="task_name">'.$task->name.'</a>';
$html .= '<a href="/" class="btn task_start btn_disabled">Start</a>';
$html .= '<a href="/" class="btn task_finish btn_disabled">Finish</a>';
$html .= '<div class="status_round '.$task->status.'"></div>';
$html .= '</div>';
$task_num++;
}?>