Article View: pl.comp.lang.php
Article #220422dostaje blad zwiazany z tym, ze sesje tworze w klasie
From: dziobacz
Date: Thu, 03 Sep 2009 13:34
Date: Thu, 03 Sep 2009 13:34
55 lines
3132 bytes
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-mailShow 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