Új hozzászólás Aktív témák

  • PazsitZ

    addikt

    válasz Lacces #8047 üzenetére

    Erről eszembe jutott, hogy nekem volt régen ilyen próbálkozásom az sql result gyors ki-extract-olására függvényből global változóként. Persze nem szép. Ma már nem is használom/használnék ilyet, mármint global változót. :B

    (#8038) Lacces: Ennek nincs köze a mutatókhoz. A miértre a magyarázat annyi, hogy ez egy script nyelv.

    $fetchResult = mysql_fetch_assoc($localpSQLResult);
    if ($fetchResult){

    foreach($fetchResult as $var_name => $var_value)
    {
    $var_name = "q_$var_name";
    global $$var_name;
    $localGlobalVarsArr[] = $var_name;
    $$var_name = $var_value;
    }
    return true;
    }

    Így global változóként létrehoztam az sql eredményét egy q_ (query) prefix-es változóként.
    De a neveket le is tároltam, hogy egy fajta garbage collect-ként üríteni tudjam őket.
    Fetch esetén ugye mindig felülíródott a változó tartalma, következő querynél ez a gc opció default lefutott, de szükség esetén letiltható volt.

    (#8041) Sk8erPeter : Alapvetően szerintem nem ördögtől való dolog ez, persze azért nem kell túlzásba vinni.
    Én pl. Factory pattern esetén szoktam használni.Bár itt nem változóként, használod fel a változóban tárolt sztringet, hanem osztálynévként, de a logika hasonló.
    Definiálsz sztring konstans értéket a lehetséges osztályok neveivel, majd azáltal pédányosítod a megfelelő osztályt.

    /**
    *
    * @param const $SQLLayerType SQLLayer constant
    * @param DBObj $db
    */
    public function __construct($SQLLayerType=null, DBObj $db=null) {
    $list = array(SQLLayer::SELECT, SQLLayer::INSERT, SQLLayer::UPDATE, SQLLayer::REPLACE, SQLLayer::DELETE);
    if(is_null($SQLLayerType) || !in_array($SQLLayerType, $list)){
    $this->SQLLayerType = SQLLayer::SELECT;
    }
    else $this->SQLLayerType = $SQLLayerType;
    $Class = "SQL" . ucfirst($this->SQLLayerType);

    $this->SQLObj = new $Class($this->SQLLayerType, $db);
    if(!is_null($db)) $this->SQLObj->table($db->getTableName());
    }

    [ Szerkesztve ]

    - http://pazsitz.hu -

Új hozzászólás Aktív témák