2016-12-18 20 views
7

Kiedy nazwa obiektu (kategoria) umieścić bezpośrednio zwraca poprawną wartość Jak:Pobiera dane obiektu z ciągiem strored w zmiennej

$primary = $this->dbmapper->category['primary'] ; // (Correct Output) 

Ale kiedy umieścić nazwę obiektu w zmiennej o nazwie $ dataname, zwraca pusty, jak :

$dataname = 'category'; 
$primary = $this->dbmapper->$dataname['primary'] ; (Blank Output) 

moja zmienna konstruktor jest

$this->dbmapper = $this->mapper(); 

moim zadaniem jest:

function mapper($module='') 
    { 
     $mapper = array(); 
     $mapper['category']['table'] = 'allcategory'; 
     $mapper['category']['primary'] = 'categoryID'; 
     $mapper['page']['table'] = 'allpages'; 
     $mapper['page']['primary'] = 'pageID'; 
     return (object) $mapper; 
    } 

Odpowiedz

5

Aby uzyskać dostęp do właściwości obiektu (zwłaszcza jeśli jest to tablica) za pośrednictwem zmiennej załączyć go z szelkami:

... 
$dataname = 'category'; 
$primary = $this->dbmapper->{$dataname}['primary']; 
+0

:) pracuje dla mnie, dzięki –

+0

@AlokJha, jesteś mile widziany – RomanPerekhrest