我正在尝试创建一个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;
}
}
}