我无法让阵列正常工作,让我告诉你这里的代码
function scanArray(){
$al = sizeof($_userLoaders);
echo $al. "<br />";
for ($tr = 0; $tr <= $al; $tr++) {
echo "value: " .$tr. "<br />";
echo $_userLoaders[$tr];
}
}
//Fetch user's loaders.
$_userLoaders;
function get_user_loaders(){
$con = connectToMySQL();//connects to my_sql
mysql_select_db("my_database", $con);//connect database
$t = mysql_query("SELECT * FROM someTable
WHERE value_a=".$_SESSION['value_a']." AND value_b=someValue");
$x= 0;
//lets loop through the results and create an array to compare later.
while ($result = mysql_fetch_array($t)){
$_userLoaders[$x] = $result['value_c'];
$x++;
}
//lets get all the options for
print_r($_userLoaders);//this part prints what it should
scanArray();
}
好吧,我最小化了上面的代码,告诉你发生了什么。相当多的函数get_user_loaders()
效果很好。它从数据库中的表中获取数据,并返回它应该的内容。其次,它是一个阵列。同样,这部分很有用。当调用print_r()
方法时,它打印它应该的内容,这是它打印的一个例子:
Array ( [0] => tableValue )
是的,此时它只有一个值,请注意这个值可以从无值变为100值,这就是我使用数组的原因。在这种情况下,我用一个值测试它。
现在,一旦我呼叫scanArray()
它就不会回显值。
scanArray()
函数回应了以下内容:
0
value:
所以我不明白为什么它打印出来,但是它没有显示功能?提前致谢。
答案 0 :(得分:2)
您的问题是$_userLoaders
变量在函数外声明,函数scanArray
对此一无所知。您需要将该变量作为参数传递:
function scanArray($_userLoaders) {
...
}
最后的电话是
scanArray($_userLoaders);
或者在函数中声明变量为global
:
function scanArray($_userLoaders) {
global $_userLoaders;
...
}
答案 1 :(得分:1)
那是因为$ _userLoaders不等于scanArray()函数中的任何内容。虽然这不是一个好习惯,但您可以添加以下行:
global $_userLoaders;
到您的scanArray()函数以及那个使用该全局变量的其他函数,它应该可以工作。