如果以前曾经讨论过,请原谅我,我是新人。
所以我在PHP中遇到了IF条件非常奇怪的行为。
让我们说,我有这个代码:
$userPhotosArray = ([0] => Array(<more values>),
[1] => Array(<more values>));
print("<table>");
foreach ($userPhotosArray as $index => $photoInfo) {
$ind = $index % 3;
if ($ind == 0)
print("<tr>");
print("<td>");
print_r($photoInfo);
print("</td>");
if ($ind == 0)
print("</tr>");
}
print("</table>");
所以上面的代码应该只输出1行,但它输出的是2行。
即使我 var_dump $ ind的价值也是o.k. (第一次迭代时它是(int)1,第二次(int)0)。即使我把它转换为bool并再次尝试 var_dump ,它仍然是o.k. ((bool)true,(bool)false)。 但是在IF条件下,每当它似乎返回真实时它就会变得怪异。 有什么意见吗?建议?
答案 0 :(得分:1)
你正在做的是:
<table>
第一次迭代:
<tr>
<td>
,print_r
和</td>
</tr>
第二次迭代
<td>
,print_r
和</td>
最后
</table>
所以你的HTML看起来像
<table>
<tr><td> -- print_r -- </td></tr>
<td> -- print_r -- </td>
</table>
并且您的浏览器正在充分利用它。
下一个代码应该可以工作
print("<table>");
print("<tr>");
foreach ($userPhotosArray as $index => $photoInfo) {
$ind = $index % 3;
if ($index > 0 && $ind == 0)
print("</tr><tr>");
print("<td>");
print_r($photoInfo);
print("</td>");
}
print("</tr>");
print("</table>");