echo会话数组值 - 警告非法字符串偏移量

时间:2016-05-18 12:05:11

标签: php arrays session

我试图使用SESSION将购物车功能添加到网站中,这些商品存储在SESSION中,但我有这个警告:非法字符串偏移' pcode'当我尝试回显数组值

$itemArray = array('pcode'=>$_GET['code']);
$_SESSION['cart_item'] = $itemArray;

这就是我将数组存储到会话中的方式

foreach ($_SESSION['cart_item'] as $item){
                echo $item['pcode'];
                }

这就是我回应我的商店数组的方式。我对PHP很陌生,并且一直试图从头开始构建网站。我想知道为什么警告继续在我的页面上显示。感谢

4 个答案:

答案 0 :(得分:2)

只有$ item会给你价值:

Path to executable: cmd.exe
Parameters: /C C:\tortoise_launcher.bat %3 %1 %2 %4

将数据附加到会话中:

$itemArray = array('pcode'=>'aaa');
$_SESSION['cart_item'] = $itemArray;
foreach ($_SESSION['cart_item'] as $key=>$item){
    echo $key; // this will print "pcode"
    echo $item; // this will print "aaa"
}

答案 1 :(得分:0)

echo $item您将获得$ item [' pcode']值,因为您正在使用foreach,它为您提供了key =>价值对,所以' pcode'是关键和$ _GET ['代码']它在foreach中的价值,因为你只使用$ item它会指向$ _GET [' code']的值。

答案 2 :(得分:0)

$_GET['code']='www';
$itemArray = array('pcode'=>$_GET['code']);
$_SESSION['cart_item'] = $itemArray;
foreach ($_SESSION['cart_item'] as $item){
                echo $item;
                }

答案 3 :(得分:0)

数组项中没有pcode的密钥。

有一种方法可以检查是否有任何密钥array_key_exists

bool array_key_exists ( mixed $key , array $array )

找到内容的任何更简单的方法是打印数组并死掉,查看数组的内容,修复并重试。