🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #220422

dostaje blad zwiazany z tym, ze sesje tworze w klasie

#220422
From: dziobacz
Date: Thu, 03 Sep 2009 13:34
55 lines
3132 bytes
Chcialbym napisac koszyczek na zakupy ;) Mam klase bedaca singletonem
- tzn. moze istniec tylko jeden obiekt tejze klasy:

------------------------------------------------------------------------------------

class klasaKoszyk
{
	private static $koszyk_na_zakupy = false; //przechowuje instancje
klasy klasaKoszyk

	private function __construct()
	{
		$_SESSION['koszyk'] = array(); //$_SESSION['koszyk'] bedzie tablica
asocjacyjna
	}

	//metoda, ktora tworzy instancje klasy tylko raz, jesli instancja
klasy juz istnieje to jest zwracany jej
	//obiekt, a nie jest tworzona nowa, druga instancja:
    public static function getInstance()
    {
        if( self::$koszyk_na_zakupy == false )
        {
            self::$koszyk_na_zakupy = new klasaKoszyk();
        }
        return self::$koszyk_na_zakupy;
    }


	public function addToCart($id_produktu)
	{
		//jesli zmienna sesji o danym id_produktu istnieje to zwieksz ilosc
tego produktu o 1
		if(isset($_SESSION['koszyk'][$id_produktu])) $_SESSION['koszyk']
[$id_produktu]++;   // **
		//jesli zmienna sesji o danym id_produktu nie istnieje to ustal
ilosc tego produktu na 1
		else $_SESSION['koszyk'][$id_produktu]=1;
	}
}

-----------------------------------------------------------------------------------
I potem robie tak:
----------------------------------------------------------------------------------
session_start();
$koszyk = klasaKoszyk::getInstance();
$koszyk->addToCart(1);
----------------------------------------------------------------------------------
Za pierwszym razem dziala, a za drugim juz wywala blad:

Fatal error: Cannot use object of type klasaKoszyk as array in C:
\Program Files\WebServ\httpd\klasy\klasaKoszyk.php on line 30

linia nr 30 to ta, dla ktorej powyzej dalem dwie gwiazdki w komentarzu
Dlaczego ?
Technical Details
Message-ID: <2ebaa9a3-80d1-43af-9af0-1c3f506292ba@e11g2000yqo.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!transit3.readnews.com!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!e11g2000yqo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!transit3.readnews.com!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!e11g2000yqo.googlegroups.com!not-for-mail
From: dziobacz <aaabbbcccdaabb@gmail.com>
Newsgroups: pl.comp.lang.php
Subject: dostaje blad zwiazany z tym, ze sesje tworze w klasie
Date: Thu, 3 Sep 2009 06:34:57 -0700 (PDT)
Organization: http://groups.google.com
Lines: 55
Message-ID: <2ebaa9a3-80d1-43af-9af0-1c3f506292ba@e11g2000yqo.googlegroups.com>
NNTP-Posting-Host: 89.77.157.71
Mime-Version: 1.0
X-Trace: posting.google.com 1251984907 18660 127.0.0.1 (3 Sep 2009 13:35:07 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Thu, 3 Sep 2009 13:35:07 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: e11g2000yqo.googlegroups.com; posting-host=89.77.157.71;  posting-account=FTpwKgoAAABWuTKca1o8YbX_ip78wnH2
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.2)  Gecko/20090729 Firefox/3.5.2 (.NET CLR 4.0.20506) FirePHP/0.3,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit