Autor | Zpráva | ||
---|---|---|---|
host Profil * |
#1 · Zasláno: 30. 6. 2008, 15:41:54
Dobrý den,
s objekty teprve začínám a dostal jsem se do (pro mě) neřešitelného problému: mám třídu a v ní dvě metody. V jedné z nich mám proměnou $xml a potřebuji se k ní dostat z druhé. class Library { public function Content() { // a zde potřebuji zjistit hodnotu proměnné $xml (viz níže) } public function Navigation() { ... $xml = XML::ParseFile(...); ... } } vytvořit proměnnou $xml je celkem časově náročné (jde o převedení dost dlouhého XML na pole) a proto se mi jí nechce sestavovat znovu v Content() Mockrát díky za případnou pomoc. |
||
nightfish Profil |
#2 · Zasláno: 30. 6. 2008, 15:44:38
třídní proměnná? (doufám, že je to takhle, v PHP se s objekty zatím moc nekamarádím)
class Library { var $xml = ""; public function Content() { echo $this->xml; } public function Navigation() { $this->xml = XML::ParseFile(...); } } |
||
host Profil * |
#3 · Zasláno: 30. 6. 2008, 15:48:59
Tak takhle rychlou odpověď jsem nečekal. Než jsem si stihl projít zbytek diskuzí zde, tak už je zde odpověď.
Ano, funguje to. Mockrát děkuji. Já jsem to zkoušel obdobným způsobem, ale zapomněl jsem na to var $xml = ""; a proto mi to nefungovalo :) Díky. |
||
souki Profil |
#4 · Zasláno: 30. 6. 2008, 16:18:24
nightfish
A proč vlastně var $xml = ""; a ne jen var $xml? |
||
Kcko Profil |
#5 · Zasláno: 30. 6. 2008, 16:39:12 · Upravil/a: Kcko
a proc vlastne var? ;-) a ne public
|
||
joe Profil |
#6 · Zasláno: 30. 6. 2008, 16:42:30
A proc public a ne private? ;-)
|
||
srigi Profil |
#7 · Zasláno: 30. 6. 2008, 17:02:33
Urcite private, vsetky premenne a napisat na ne setre a getre!
|
||
nightfish Profil |
#8 · Zasláno: 30. 6. 2008, 17:09:39
souki
A proč vlastně var $xml = ""; a ne jen var $xml? zvyk přiřazovat proměnným výchozí hodnotu Kcko a proc vlastne var? ;-) a ne public to jsou ty drobné nuance OOP v PHP, kterými jsem se ještě nezabýval |
||
souki Profil |
#9 · Zasláno: 30. 6. 2008, 17:31:55
nightfish
Právě mi nejde do hlavy v čem je lepší "" než null. |
||
Měsíček Profil |
#10 · Zasláno: 30. 6. 2008, 17:40:48
"Právě mi nejde do hlavy v čem je lepší "" než null."
To je asi jako ptát se v čem je lepší psát echo(""); než echo ""; .. => v ničem - jde o zvyk. |
||
suky Profil |
#11 · Zasláno: 30. 6. 2008, 19:10:50
Měsíček
A prece existuje rozdil. Null odkazuje na neexistujici objekt cili do prazdna. "" je prazdny retezec. Prave proto se s nimi PHP pracuje jinak. nightfish Var je z PHP 4.0, v 5kach by se uz melo pouzivat public. host Vim, ze si tohle nechtel, ale koukam, ze se zacinas ucit OOP na PHP kodu. Doporucuju ti se nejprve naucit OOP a pak ho prevadet do PHP. Jak na to? (link). |
||
Měsíček Profil |
#12 · Zasláno: 30. 6. 2008, 19:15:40
"A prece existuje rozdil. Null odkazuje na neexistujici objekt cili do prazdna. "" je prazdny retezec. Prave proto se s nimi PHP pracuje jinak."
Rozdíl ano, ale ne priorita "lepší/horší". |
||
suky Profil |
#13 · Zasláno: 30. 6. 2008, 19:24:46
Měsíček
Tam nejde o prioritu ale o vhodne zvoleni. |
||
sicario Profil |
#14 · Zasláno: 30. 6. 2008, 20:08:25
Myslim, ze pouziti var $xml = ""; muze byt matouci. Vzhledem k jejimu dalsimu pouziti, by mela byt spravnejsi vychozi hodnota var $xml = array();.
joe A proc public a ne private? ;-) V PHP5 jsou promenne deklarovane pomoci var chapany jako public. |
||
Měsíček Profil |
#15 · Zasláno: 30. 6. 2008, 20:14:40
"Myslim, ze pouziti var $xml = ""; muze byt matouci. Vzhledem k jejimu dalsimu pouziti, by mela byt spravnejsi vychozi hodnota var $xml = array();. "
Tak to mě zmátlo úplně :) "Tam nejde o prioritu ale o vhodne zvoleni." To je, ale v tomto jednoduchém příkladu viz výše snad jedno. |
||
suky Profil |
#16 · Zasláno: 30. 6. 2008, 20:42:58
Měsíček
// Deleni podle atributu: class Trida { public $cislo = 0; public $pole = array(); public $retezec = ''; public $odkazNaObjekt = null; } |
||
sicario Profil |
#17 · Zasláno: 30. 6. 2008, 20:46:07
Měsíček
host pise ... jde o převedení dost dlouhého XML na pole ... Tak proto var $xml = array(); :-) |
||
Měsíček Profil |
#18 · Zasláno: 30. 6. 2008, 20:47:11
ok, vzdávám se :)
|
||
Časová prodleva: 4 měsíce
|
|||
Pilgrim Profil |
#19 · Zasláno: 18. 10. 2008, 16:07:43
V programování je NULL speciální hodnota, kterou se označuje adresní ukazatel (nebo jakýkoliv jiný druh referenčního odkazu), který v danou chvíli neukazuje nikam.
|
||
Časová prodleva: 16 let
|
0