LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: Poradna PHP a OOP, proměné

PHP a OOP, proměné 29.4.2009 16:11
Tomáš Kallus

Ahoj všem, mám dotaz. Učím se OOP v PHP a narazil jsem na problém. Jak mám docílit, abych měl jednu proměnou přístupnou ve všech mojich objektech? Mám pět objektů, tři z nich mají jednoho předka a každý potřebuje jednu proměnou(konstantu) se stejnou hodnotou. Nechci ji definovat pro každý objekt zvlášť, protože se proměná bude v budoucnu měnit a musel bych ji měnit ve všch objektech. Nemusí to být proměná, muže to být i konstanta, jedná se o pole několika hodnot. Poradíte?

Re: PHP a OOP, proměné 25.5.2009 22:53
Michal

Buď udělat společného předka, nebo spíš vytvořit rozhraní s konstantou a tu pak implementovat kam potřebujete.

Re: PHP a OOP, proměné 26.5.2009 02:34
Aleš Hakl

A co treba ji proste udelat globalni? To by bylo malo objektove orientovane reseni?

Re: PHP a OOP, proměné 26.5.2009 02:39
Martin Chudoba

Předávat jí do všech objektů pomocí parametrů nějaké funkce?

Re: PHP a OOP, proměné 10.6.2009 20:09
Jiří Dubanský

Pro tento pripad bych doporucil nejaky hash v OOP, neboli asociativni pole - napr:

class Hash {
/**
* param $array je jmeno daneho asoc.pole
* param $id je identifikator asoc. pole
* return $pozadovanou_hodnotu
*/
public static function GetValue($array,$id) {
return self::MyValue($array,$id);
}

/* params a return identicke s metodou GetValue */
protected function MyValue($array,$id) {

//mozne vyuziti - vice asoc. poli s libovolnym identifikatorem
$pole['id'] = 'value';
$pole['id2'] = 'value2';

$pole2['id'] = 'value3';
$pole2['id2'] = 'value4';

$moje_pole['333'] = 'objekt funguje bez chybicky';

//vystup i s easy handlerem
$array = $$array;
if( @$array[$id] ) {
return $array[$id];
} else {
die("Hledana polozka neexistuje!");
}
}
}

V tomto objektu muzes mit ulozena ruzna asoc.pole bez nejakeho omezeni, kdy hodnoty muzes brat timto zpusobem: Hash::GetValue('nazev_pole','identifikator');

Cili prakticky priklad vazany k tomu objektu v soucasne forme:
print Hash::GetValue('moje_pole','333'); vypise 'objekt funguje bez chybicky' :-)

Tohle je daleko lepsi nez konstanty a globalni promenne, ponevadz je to daleko rychlejsi a prehlednejsi -> vykonejsi

Btw je to psano s ohledem na jednoduchost :-)

s pozdravem

Mr.S1lent.cz

PS: netestoval jsem to, je mozne, ze tam bude nejaka chybicka - pripadne se ozvi a ja to opravim :-)

Re: PHP a OOP, proměné 27.6.2009 12:22
P.B.

Nejdřív se naučte něco o OOP a pak už takovej dotaz nepoložíte.

Re: PHP a OOP, proměné 16.7.2009 10:45
Grumpa

On se učí, kolego... :o)

Re: PHP a OOP, proměné 16.7.2009 16:32
P.B.

On se učí OOP v PHP, ale o principech OOP jako takového asi nemá zdání :)

Re: PHP a OOP, proměné 16.7.2009 16:45
Aleš Hakl

Jako koneckoncu temer nikdo z dnesnich silenych objektatoru...


KOMENTARZE
PHP a OOP, proměné 29.4.2009 16:11 Tomáš Kallus
  |- Re: PHP a OOP, proměné 25.5.2009 22:53 Michal
  |- Re: PHP a OOP, proměné 26.5.2009 02:34 Aleš Hakl
  |- Re: PHP a OOP, proměné 26.5.2009 02:39 Martin Chudoba
  |- Re: PHP a OOP, proměné 10.6.2009 20:09 Jiří Dubanský
  L Re: PHP a OOP, proměné 27.6.2009 12:22 P.B.
    L Re: PHP a OOP, proměné 16.7.2009 10:45 Grumpa
      L Re: PHP a OOP, proměné 16.7.2009 16:32 P.B.
        L Re: PHP a OOP, proměné 16.7.2009 16:45 Aleš Hakl
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4709x
2. FreeBSD
Download: 8881x
3. PCLinuxOS-2010
Download: 8386x
4. alcolix
Download: 10651x
5. Onebase Linux
Download: 9455x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 5950x

1. xinetd
Download: 2236x
2. RDGS
Download: 937x
3. spkg
Download: 4334x
4. LinPacker
Download: 9595x
5. VFU File Manager
Download: 3024x
6. LeftHand Mała Księgowość
Download: 6842x
7. MISU pyFotoResize
Download: 2598x
8. Lefthand CRM
Download: 3395x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 2867x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz