我正在尝试从Cookie获取值,然后使用explode()
转义所有逗号,并使用while
循环循环cookie中的所有值。
当我尝试使用下面的代码在while
循环中显示值时,它可以正常工作:
echo $hey= '<span>'.$result[$counter].'</span> ';
但是我需要访问循环外的值,而且这段代码不会给出任何输出。
$cookie_value=$_COOKIE["chords"];
$counter = 0;
$result=explode(",", $cookie_value);
$array_el_lenght = count($result);
while ($counter<=$array_el_lenght) {
$hey= '<span>'.$result[$counter].'</span> ';
$counter++;
}
echo $hey;
答案 0 :(得分:3)
您正在尝试访问未定义的$result
偏移量,您的代码正在尝试访问不存在的$result[count($result)]
,您需要替换while语句,因此在上一次迭代中index位于count($result)-1
while ($counter < $array_el_lenght) { //Replaced <= with <
$hey= '<span>'.$result[$counter].'</span>';
$counter++;
echo $hey; // will output the current iteration
}
// echo $hey; //Will output the content of last while iteration
答案 1 :(得分:1)
你的while循环循环次数过多,因为数组的最后一个元素是索引$array_el_lenght - 1
。此外,不要忘记连接你的结果(编辑:我只是猜测这是你想要做的),而不仅仅是重新分配$hey
! ; - )
试试这个:
$cookie_value=$_COOKIE["chords"];
$counter = 0;
$result=explode(",", $cookie_value);
$array_el_lenght = count($result);
$hey = "";
while ($counter < $array_el_lenght) {
$hey .= '<span>'.$result[$counter].'</span> ';
$counter++;
}
echo $hey;
答案 2 :(得分:0)
$hey
在循环内定义,因此其范围以循环结束。如果你想从循环外部访问它,你也应该在它之外定义它:
$hey = NULL;
while ($counter<=$array_el_lenght) {
$hey= '<span>'.$result[$counter].'</span> ';
$counter++;
}
if ($hey) {
echo $hey;
}