2014-02-07 4 views
0

им пытаются сделать свой первый класс в PHP из exmpleUndefined индекс добавить к массиву

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

Что у меня есть:

файл 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); 

witht он ошибка Undefined индекс: 03 в

Я не могу это исправить, может кто-нибудь мне помочь?

+1

Ключ массива не существует. – randomizer

ответ

6

Вам необходимо проверить, существует ли этот ключ массива до, который вы добавляете к нему. Если он не существует, вам нужно его создать сначала, , затем.

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

Спасибо, что сейчас работает, но я не думал, что это официальный учебник;) –

Смежные вопросы