Shoptet - e-shop s napojením na Aukro a Facebook od 190,- Kč za měsíc. 30 dní zdarma
Zobrazují se odpovědi 1 až 9 z 9

Promněné promněné $this

  1. 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
    PHP kód:
    $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
    PHP kód:
    public static function build($set) {
            return 
    $this->[zde chci proměnou set nastavit jako fci]();
        } 
    nevíte někdo velice by mě to zajímalo!

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. $this->$set();

    zkoušels to vubec nez jsi sem ten dotaz napsal?

    viz fcni priklad - nebo to chapu spatne?

    PHP kód:
    class test {

        public function 
    a(){
            
    $squirt 'b';
            
    $this->$squirt();
        }
        
        public function 
    b(){
           echo 
    'oh';
        }
        

        
    }

    $a=new test();
    $a->a();
    //vypíše "oh" 

  4. 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. 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 :)

  6. 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ď!

  7. staticka metoda nemuze pouzivat $this - pouziva self:: kdyz uz

  8. 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. :-)

  9. 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 :

    PHP kód:
    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
    Naposledy upravil jiriki : 06.01.2012 v 14:03

  10. Děkuji mockrát za reakce, problém jsem vyřešil, vše běhá ok.

Podobná témata

  1. Promněnná v emailu z Outlooku
    By Thomasxx in forum Programování
    Odpovědí: 0
    Poslední příspěvek: 30.11.2011, 21:48
Hostujeme u Server powered by TELE3