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 语句?

谢谢你的时间!

4

3 回答 3

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

foreach ($jabroni->moves as $value) {
    echo $value;
}
于 2012-01-27T14:26:32.967 回答
2

你做错了循环..你有一个对象,而不是一组对象。所以正确的方法应该是..

$jabroni = new jabroni();
foreach ($jabroni->phrases as $value)
{
    echo $value;
}
foreach ($jabroni->moves as $value)
{
    echo $value;
}
于 2012-01-27T14:26:40.577 回答
1

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

foreach ($jabroni as $keys => $values)
{
    if ($keys == 'phrases' || $keys == 'moves') {
           foreach ($values as $value) {
             echo $value;
           }
    }
}
于 2012-01-27T16:48:31.443 回答