这个问题是基于我之前提交的一个问题的回复:
打印新<div>关于php内部id迭代的更改,同时从MySQL结果循环
这不是一个真正的问题,但我正在努力了解发生了什么。
我不明白为什么当$previous
等于null
时,这个循环在第一次迭代时不将</div>
添加到变量$html
$previous = null;
while ($result = $stmt->fetch()) {
if ($_company_id !== $previous) {
if($previous !== null) {
$html .='</div>';
}
$html .= '<div id="company-' . $_company_id . '" class="tab-pane fade">';
}
$previous = $_company_id;
}
if($previous != null) {
$html.='</div>';
}
输出正是我想要的:
<div id="company-1" class="tab-pane fade"></div>
<div id="company-2" class="tab-pane fade"></div>
但我就是不明白为什么。有人能向我解释一下吗?
实际上是因为他们检查是否为非。仔细看看
if($previous !== null) {
$html .='</div>';
}
所以它在第一次通过时就被跳过了。在每隔一个转弯时,它都有一个值,并且条件为true。从而执行代码。