Vyřešeno Proměnné PHP
21. srp 2015 19:27 #123127
Už mi to opravdu nemyslí, ale jak mám udělat proměnnou, kterou naplním v jedné funkci a v druhé funkci ji přečtu.
Například:
v první funkci:
$sort_by = $order ;
var_dump ($sort_by) dá výsledek "rating"
V jiné funkci var_dump ($sort_by) dá výsledek null
kde dělám chybu?
Například:
v první funkci:
$sort_by = $order ;
var_dump ($sort_by) dá výsledek "rating"
V jiné funkci var_dump ($sort_by) dá výsledek null
kde dělám chybu?
21. srp 2015 21:10 #123128
Odpověď od Ernst
Joomla Expert
už jsem to vyřešil definicí proměnné jako global
22. srp 2015 01:13 #123129
Odpověď od Cony

Moderátor
Což je asi ten nejnešťastnější způsob. Pokud jsou funkce metodami nějaké třídy, použijte proměnou té třídy, tedy např. $this->sort_by
22. srp 2015 16:31 #123131
Odpověď od Ernst
Joomla Expert
To chápu, ale lepší řešení jsem nevymyslel.
Dávám si pozor na název proměnný (dlouhá a česky)
Potřebuji v jedné funkci promennou $hodnota_cesky_1111=.f.
přečíst v jiné funkci.
takže proměnnou třídy asi nemohu použít (jsou v jiných třídách)
Dávám si pozor na název proměnný (dlouhá a česky)
Potřebuji v jedné funkci promennou $hodnota_cesky_1111=.f.
přečíst v jiné funkci.
takže proměnnou třídy asi nemohu použít (jsou v jiných třídách)
22. srp 2015 23:10 #123135
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13

Admin
Pak bych si vzal příklad z Joomly! a udělal to např. pomocí singletonů.
např: JFactory::getDBO();
vždy, v jakýkoliv funkci dostaneš informace o spojení s databází (nevytváří se neustále znovu, pokud je jednou vytvořené, použije se to již vytvořené). A může tuto funkci volat v jakékoliv třídě, v jakékoliv funkci.
je to vlastně náhrada za global, s tím, že je v tom větší pořádek, protože vždy voláš třídu a metodu, takže přesně víš, kde jsou instrukce té metody uloženy. Zatímco u globálních proměnných můžeš po určité době mít problém s orientací - kde byla proměnná vytvořena, uložena, atd.
např: JFactory::getDBO();
vždy, v jakýkoliv funkci dostaneš informace o spojení s databází (nevytváří se neustále znovu, pokud je jednou vytvořené, použije se to již vytvořené). A může tuto funkci volat v jakékoliv třídě, v jakékoliv funkci.
je to vlastně náhrada za global, s tím, že je v tom větší pořádek, protože vždy voláš třídu a metodu, takže přesně víš, kde jsou instrukce té metody uloženy. Zatímco u globálních proměnných můžeš po určité době mít problém s orientací - kde byla proměnná vytvořena, uložena, atd.
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
23. srp 2015 09:23 - 23. srp 2015 09:24 #123137
Odpověď od Ernst
Joomla Expert
tak jsem to vyzkoušel, zrušil jsem proměnné global a v požadované funkci jsem dal:
$sort_by_moje = $this->filterOrder[$order]
a to nefunguje, proměnná se nemění
původně funkční bylo, že tato proměnná je globální a v jiné funkci mám:
$sort_by_moje= $this->filterOrder[$order];
a to funguje, proměnná se mění dle toho, jak je to setřízeno
Potřebuji si někde přečíst, dle čeho je setříděno a pak to pomocí IF rozvětvit
$sort_by_moje = $this->filterOrder[$order]
a to nefunguje, proměnná se nemění
původně funkční bylo, že tato proměnná je globální a v jiné funkci mám:
$sort_by_moje= $this->filterOrder[$order];
a to funguje, proměnná se mění dle toho, jak je to setřízeno
Potřebuji si někde přečíst, dle čeho je setříděno a pak to pomocí IF rozvětvit
23. srp 2015 10:28 - 23. srp 2015 10:30 #123138
Odpověď od Ernst
Joomla Expert
dopracoval jsem se ještě k jednomu řešení:
$test=($query->order) ;
var_dump($test) ;
to mi vypíše"
object(JDatabaseQueryElement)[709]
protected 'name' => string 'ORDER BY' (length = 8 )
protected 'elements' =>
array (size=1)
0 => string 'p.dist asc' (length=10)
protected 'glue' => string ',' (length=1)
jak se dostanu k tomu řetězci 'p.dist asc' ?
výraz var_dump($test->elements) ; nebo var_dump($test->elements[0])
mi končí chybou.
$test=($query->order) ;
var_dump($test) ;
to mi vypíše"
object(JDatabaseQueryElement)[709]
protected 'name' => string 'ORDER BY' (length = 8 )
protected 'elements' =>
array (size=1)
0 => string 'p.dist asc' (length=10)
protected 'glue' => string ',' (length=1)
jak se dostanu k tomu řetězci 'p.dist asc' ?
výraz var_dump($test->elements) ; nebo var_dump($test->elements[0])
mi končí chybou.