Pergunta

Eu estou tentando criar um foreach, que passará por algumas variáveis dentro de um objeto.

No momento, é apenas

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");
}

Eu tentei fazer isso:

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

No entanto, nada é impresso.

Alguma idéia se o que eu estou tentando alcançar é possível, eu tenho a intuição de que não o seu e que eu tenho para fazer o indivíduo instruções foreach para cada objeto variável de membro que é uma área?

Obrigado pelo seu tempo!

Foi útil?

Solução

Você está fazendo de errado loop..Você tem um objeto, não um array de objetos.então, a maneira correta deve ser..

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

Outras dicas

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

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

Você pode fazê-lo em nested loops foreach.Isso vai ser fácil, em vez de ficar dois loops for seperatley

foreach ($jabroni as $keys => $values)
{
    if ($keys == 'phrases' || $keys == 'moves') {
           foreach ($values as $value) {
             echo $value;
           }
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top