所以这个bug对我来说似乎很奇怪。我有一个包含两个必需参数的方法,但是当脚本进入第一个for循环时,两个参数中的一个似乎不再存在。真的很奇怪的bug for循环PHP
下面的代码的大块:
public function getOptionsForParameters($params, $product){
// here the value of $product is 105
for($i = 0; $i<count($params); $i++){
// but here, $product no longer exists, so in the SQL query, it is empty
$sql = "SELECT *
FROM [table_name]
WHERE prm_id = ".(int)$params[$i]['prm_id']."
AND prd_id = ".(int)$product."
AND opt_status = 'active'";
}
// ...
}
我真的不明白为什么,因为有方法的开始,for循环之间绝对没有脚本。另外,如果我在所有for循环之后打印变量,就在方法的“返回”之前,它的值是105 ...在我看来,PHP以某种方式为我的变量提供了一个范围,这是奇怪..
我一直在挣扎已经与此太久,我还没有发现在谷歌或PHP.net
与此相关的任何是否有人有任何想法,为什么我的剧本要这么做?
BTW:我的PHP版本是5.3.10
非常感谢您
不可能用您发布的代码。请发布一个完整的代码片段,演示此行为,最好是像http://codepad.org一样。 – deceze 2012-08-14 13:40:35
这些注释在循环内部发生了什么?你是否在擦拭可变内容?它不存在或是空的吗?它们是有区别的。 – Orbling 2012-08-14 13:41:15
缺少哪个变量,$ product或$ param,如果它是$ param,它只是“内部”$ param或整个变量的内容... – 2012-08-14 13:43:25