|
|
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
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|