Autor Zpráva
host
Profil *
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
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 *
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
nightfish
A proč vlastně var $xml = ""; a ne jen var $xml?
Kcko
Profil
a proc vlastne var? ;-) a ne public
joe
Profil
A proc public a ne private? ;-)
srigi
Profil
Urcite private, vsetky premenne a napisat na ne setre a getre!
nightfish
Profil
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
nightfish
Právě mi nejde do hlavy v čem je lepší "" než null.
Měsíček
Profil
"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
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
"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
Měsíček
Tam nejde o prioritu ale o vhodne zvoleni.
sicario
Profil
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
"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
Měsíček

// Deleni podle atributu:
class Trida {
public $cislo = 0;
public $pole = array();
public $retezec = '';
public $odkazNaObjekt = null;
}
sicario
Profil
Měsíček
host pise ... jde o převedení dost dlouhého XML na pole ...
Tak proto var $xml = array(); :-)
Měsíček
Profil
ok, vzdávám se :)
Pilgrim
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: