我有一部分 PHP 脚本对我来说很奇怪。下面的循环从数组中获取最大值builds
——这是一堆随机顺序的整数。它按预期获得了最高值,那里没有问题。
$highest = $builds[0];
for ($i=0; $i < count($builds); $i++) {
if ($builds[$i] > $highest) {
$highest = $builds[$i];
}
}
问题是当我尝试$highest
在循环之后使用时。(file_get_html
是 simple_html_dom 库的一部分 - 我在脚本的其他部分使用它很好 - 这不是问题。)
$html = file_get_html("http://www.blah.com/builds/" . $highest);
//timeout msg on browser
这最终会超时。Chrome 返回“错误 101:连接已重置”。Firefox 以类似的方式返回,“在加载页面时重置了与服务器的连接。”
我玩了一点,我能说的最好的$highest
就是没有以某种方式正确设置或调用。
如果我手动分配变量,则file_get_html
可以正常工作并按预期返回数据。IE 如果我让我的脚本看起来像这样。
$highest = $builds[0];
for ($i=0; $i < count($builds); $i++) {
if ($builds[$i] > $highest) {
$highest = $builds[$i];
}
}
$highest = 20; //I understand the loop is useless because of this
//but I've been running it to make sure it's not the issue.
$html = file_get_html("http://www.blah.com/builds/" . $highest);
//now this returns data
为什么手动分配变量有效,但在循环中设置却无效?我一直在努力确保变量设置正确,而且看起来是这样prints
。var_dumps
脑子里糊涂了。