添加到数组时未定义的索引

时间:2014-02-07 13:48:21

标签: php arrays

我试图从一个例子

中创建我的第一堂课

http://www.php.net/manual/en/keyword.class.php

我有什么:

file cart.php

<?php
class Cart
{
  private $items; //items in our cart

  public function Cart()
  {
      $this->add_item("03", 0);
  }

  public function add_item ($artnr, $num)
  {
    $this->items[$artnr] += $num;
    echo "product added";
  }
}
?>

文件index.php

    <html>
<head>
<?php
include_once('cart.php');
?>
<title>Test</title>
</head>
<body>
<?php

     $test1 = new Cart();

?>
</body>
</html>

但它在线上崩溃

    this->add_item("03",0);

错误未定义索引:

中的03

我无法修复它,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:6)

您需要在附加之前检查该数组键是否存在。如果它不存在,您需要先创建它,然后附加到它。

  public function add_item ($artnr, $num)
  { 
    if (!isset($this->items[$artnr])) {
        $this->items[$artnr] = 0;
    }
    $this->items[$artnr] += $num;
    echo "product added";
  }