Zadejte hledaný výraz...

Promněné promněné $this

Richard Hutta
verified
rating uzivatele
(1 hodnocení)
5. 1. 2012 23:16:22
Dobrý den,
zajímalo by mě, vím, že v klasickém neoběktovém PHP jse dá použít proměná jako název fce nebo též promněné, uvedu příklad
$set = "yes"
echo $$set;
//vypíše jse promněná hello
ovšem na co už jsem nepřišel a to v objektech jak se to řeší pokud chci použít $this
též uvedu příklad
public static function build($set) {
return $this->();
}
nevíte někdo velice by mě to zajímalo!
5. 1. 2012 23:16:22
https://webtrh.cz/diskuse/promnene-promnene-this#reply714906
hm
verified
rating uzivatele
(20 hodnocení)
5. 1. 2012 23:36:00
$this->$set();
zkoušels to vubec nez jsi sem ten dotaz napsal?
viz fcni priklad - nebo to chapu spatne?
class test {
public function a(){
$squirt = 'b';
$this->$squirt();
}
public function b(){
echo 'oh';
}
}
$a=new test();
$a->a();
//vypíše "oh"
5. 1. 2012 23:36:00
https://webtrh.cz/diskuse/promnene-promnene-this#reply714905
To nepoužívejte, je to hrozné. Vytváříte tím kód křehký jako domeček z karet a propletený jako zarostlá staletá zahrada.
5. 1. 2012 23:45:13
https://webtrh.cz/diskuse/promnene-promnene-this#reply714904
hm
verified
rating uzivatele
(20 hodnocení)
5. 1. 2012 23:52:16
martine mam par prikladu kde mi to nesmirne ulehcilo zivot a vlastne nemam jasnou predstavu jak jinak by se to vubec resilo (nejakou rpedstavu mam, ale ty jsou zbytecne komplikovane vuci tomuto) a pritom jsme si jist ze ta apliakce neni hrozna, krehka ani propletena :)
5. 1. 2012 23:52:16
https://webtrh.cz/diskuse/promnene-promnene-this#reply714903
Richard Hutta
verified
rating uzivatele
(1 hodnocení)
5. 1. 2012 23:52:27
dřív než jsem něco napíši vždy zkusím, k tomu co jste napsal,
1. používal jsem statickou metodu čili jsem volal model::build('neco');
2. váš příklad po doplnění statické metody vypsal totéž co můj což znamená že promněné promněné jsem použil správně avšak statická metoda tomu brání a já nevím proč!
3. chybová hláška mi také nedává smysl -> "Using $this when not in object context"
díky za odpoveď!
5. 1. 2012 23:52:27
https://webtrh.cz/diskuse/promnene-promnene-this#reply714902
hm
verified
rating uzivatele
(20 hodnocení)
5. 1. 2012 23:59:25
staticka metoda nemuze pouzivat $this - pouziva self:: kdyz uz
5. 1. 2012 23:59:25
https://webtrh.cz/diskuse/promnene-promnene-this#reply714901
Tomáš Zíma
verified
rating uzivatele
(6 hodnocení)
6. 1. 2012 00:47:09
Aleš Jiříček: Tak je to u více konstrukcí v různých jazycích. To že se něco silně doporučuje nepoužívat neznamená, že to ve výjimečných případech nesmí být použito. :-)
6. 1. 2012 00:47:09
https://webtrh.cz/diskuse/promnene-promnene-this#reply714900
Jirka
verified
rating uzivatele
(74 hodnocení)
6. 1. 2012 02:10:04
nemuzes ze staticke funkce TRIDY volat funkce konkretnich OBJEKTU - doporucuju precist si vyznam statickych prvku v objektovem programovani
jde pouze z normalni funkce volat statickou nebo ze staticke statickou
co se tyce variabilniho nazvu volane funkce jsou mozne tyto varianty :
class cA {
public function myfA(){
return 'hello';
}
public function myfB($var){
echo $this->$var();
}
public function myfC($var){
echo self::$var();
}
public static function mysfA(){
return 'static hello';
}
public static function mysfB($var){
echo self::$var();
}
}
$vA = new cA;
$vA->myfB('myfA');
$vA->myfC('mysfA');
cA::mysfB('mysfA');
edit : nekdo muze namitnout, ze jde volat ze staticke funkce tridy normalni funkce konkretnich objektu stejne tridy, ale vyzaduje to mit statickou nebo globalni promenou kde budou tyto objekty ulozeny (nebo reference). Pak to ale urcite nebude pres $this
6. 1. 2012 02:10:04
https://webtrh.cz/diskuse/promnene-promnene-this#reply714899
Richard Hutta
verified
rating uzivatele
(1 hodnocení)
6. 1. 2012 14:34:23
Děkuji mockrát za reakce, problém jsem vyřešil, vše běhá ok.
6. 1. 2012 14:34:23
https://webtrh.cz/diskuse/promnene-promnene-this#reply714898
Pro odpověď se přihlašte.
Přihlásit