Emerkove osobne stránky - Miroslav Rác

RSS
  6. február 2011

Ako získať hodnotu globálnej premennej

Keď potrebujeme zistiť hodnotu premennej vo vnútri funkcie, môžeme jednoducho použiť "prívlastok" global. Problém nastáva ak názov premennej vopred nepoznáme. Skúšal som všeliaké krkolomné riešenia, ktoré nedovolovali zistiť hodnotu premennej v objekte a podobne, až kým ma nenapadlo využiť funkciu eval. Mnohí túto funkciu odsudzujú, pretože sa dá ľahko zneužiť. Pokiaľ ju však použijeme s rozumom, nevidím tam žiadny problém.

Vytvoríme si teda pomocnú funkciu, trebárs getglobal()

  • function getglobal($Varname){
  •   preg_match('#([a-zA-Z0-9]+)#', $Varname, $Var);
  •   global ${$Var{0}};
  •   eval('$Temp = '.$Varname.';');
  •   return $Temp;
  • }

Pomocou tejto funkcie môžeme teraz zistiť hodnotu premennej definovanej mimo funkcie v akomkoľvek tvare.

  • getglobal('$premenna');
  • getglobal('$trieda->subtrieda->premenna');
  • getglobal('$trieda->subtrieda->funkcia()');
  • getglobal('$pole[0]');
  • getglobal('$pole[prvok][prvok]');

Článok napísal Miroslav Rác 6. februára 2011
vybrali.sme.sk


Airweb.sk - creative web solutions
0 príspevkov

Diskusia

V diskusii pre tento článok ešte nie je žiadny príspevok.

Pridať komentár

Meno:
Predmet:
Text:Kontrola proti spamu
Menu Vyhľadávanie
  • Na stránke momentálne nie je možné vyhľadávať
Moje poznámky
  • 16. marca 2010 o 11:58:46:
    Na hodnotenie komentárov som použil správny výpočet podľa vzorcu uvedenom v dosť poučnom článku. Viac v rubrike Oplatí sa vidieť.
  • 1. januára 2010 o 13:29:02:
    Prajem vám šťastný a hlavne úspešný nový rok :)
  • 12. decembra 2009 o 23:51:55:
    Predmet v komentároch je už naozaj nepovinný :)
Používatelia
  • Je tu prítomných 1 používateľov.
emer, 2010

Na tomto blogu su vyjadrené moje myšlienky, názory a postoje k určitým veciam alebo udalostiam. Preto upozorňujem, že to čo tu napíšem nemusí byť 100% pravda a aj ja sa môžem zmýliť, alebo mať odlišný názor na vec. Texty neprešli jazykovou kontrolou.