如何foreach遍历作为数组的部分对象成员变量


How to foreach through part of an objects member variables that are arrays?

我正在尝试创建一个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语句?

谢谢你抽出时间!

您在循环中做得不对。。您只有一个对象,而不是一个对象数组。所以正确的方法应该是..

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

您可以在嵌套的foreach循环中执行此操作。这将是容易的,而不是去两个单独的环路

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