2012-01-27 47 views
1

我想創建一個將通過對象內的一些變量的foreach。如何通過數組的一部分對象成員變量進行初始化?

目前它只是

class jabroni 
{ 
    var $name = "The Rock"; 
    var $phrases = array ("The rock says", "Im gonna put the smackdown on you", "Bring it on jabroni"); 
    var $moves = array ("Clothes line", "Pile driver", "Reverse flip"); 
} 

我試着這樣做:

$jabroni = new jabroni() 
foreach ($jabroni as $value) 
{ 
    echo $value->phrases; 
    echo $value->moves; 
} 

但是沒有東西打印出來。

任何想法,如果我想實現的是可能的,我有直覺感覺它不是,我將不得不爲每個對象成員變量做一個區域的單個foreach語句?

謝謝你的時間!

回答

2

你做錯了循環..你有一個對象,而不是一個對象數組。所以正確的方式應該是..

$jabroni = new jabroni(); 
foreach ($jabroni->phrases as $value) 
{ 
    echo $value; 
} 
foreach ($jabroni->moves as $value) 
{ 
    echo $value; 
} 
+0

感謝您的幫助! – kaleeway 2012-01-27 14:31:33

+0

不客氣@loosebruce :) – SERPRO 2012-01-27 14:32:37

2
foreach ($jabroni->phrases as $value) { 
    echo $value; 
} 

foreach ($jabroni->moves as $value) { 
    echo $value; 
} 
+0

所以即時猜測的成員陣列個別的foreach? – kaleeway 2012-01-27 14:27:17

+1

@loosebruce是的。 – Dogbert 2012-01-27 14:27:49

1

你可以在嵌套的foreach循環。這將是容易的,而不是去爲兩個for循環seperatley

foreach ($jabroni as $keys => $values) 
{ 
    if ($keys == 'phrases' || $keys == 'moves') { 
      foreach ($values as $value) { 
      echo $value; 
      } 
    } 
}