2013-01-13 86 views
0

我可以設法從我的數據庫中獲取一個字段,該字段返回一個包含id,height,width,top等屬性的對象,其中一個屬性稱爲props包含我需要的屬性名稱數組,例如它可以是:('top','bottom','left','right')。現在我想要做的是迭代$ props值並從原始對象中獲取屬性,並將其添加到字符串中。所以我們說從數據庫中獲取類叫做$元素,我有:PHP OOP Mysql獲取變量屬性

$props=$element->props; 
    foreach($props as $property){ 
     $style .= $property." : ".$element->{$property}."; "; 
    } 
    unset($property); 

但我在$風格最終是像top : ; left : ; bottom : ; right : ;,明顯的代碼$element->{$property}部分不返回任何東西。我嘗試了很多選擇,但我無法弄清楚發生了什麼,任何人都可以幫助我?

+0

你確定有一個'$ element-> top',或'$ element-> left'或'$ elemen t-> bottom'或'$ element-> right'? – qwertymk

+0

你介意複製死的結果(print_r($ element)); ? – CoryJThompson

+0

@CoryJThompson stdClass的對象 ( [ID] => 1 [型] =>圖像 [頂端] => 266 [左] => 285 [寬度] => 195 [高度] => 184 [道具] =>數組 ( [0] =>位置 [1] =>邊界寬度 [2] =>寬度 [3] =>高度 [4] =>頂部 [5] =>左 [6] =>邊框顏色 [7] =>邊距 ) ) –

回答

0

如果確實是你的對象具有作爲top這樣的屬性,我會因爲不需要花括號,如果你想達到的元素對象的頂級嘗試這種方法|左|底部|右鍵屬性:

$props=$element->props; 
foreach($props as $property){ 
    $style .= $property . " : " . $element->$property . "; "; 
} 

如果你正在做什麼這裏我可以建議一個小的調整,使它更加明顯,字符串連接可以得到相當難看,特別是如果你使用分號這在PHP是有意義的:

$props = $element->props; 
foreach($props as $property){ 
    $style_format = '%s : %s; "; 
    $style .= sprintf($style_format, $property, $element->$property); 
} 
+0

之前有一個空白區域問題,我試過它沒有花括號,我甚至試過 echo $ element - > $ property; 哪個不返回任何東西:( –

+0

然後我建議$ element-> top等等,不存在;至少不是你期待它。 – philwinkle

+0

是的,我認爲這是問題,有額外的空間每個財產的開始出於某種原因!無論如何感謝幫助 –