使用for循环访问类变量

Lin*_*nas 3 php oop

我想用for循环访问类变量,这是我的简单类

class test{
    public $var1 = 1;
    public $var2 = 2;
    public $var3 = 3;
    public $var4 = 4;
}


$class = new test();
Run Code Online (Sandbox Code Playgroud)

这就是我尝试用循环访问变量的方法

for($i = 1; $i <= 4; $i++){
    echo $class->var.$i;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误说 Notice: Undefined property: test::$var in C:\xampp\htdocs\test\index.php on line 12

好吧,这不是一个很大的错误,我真的得到了回报的价值,但我仍然不明白为什么我会得到这个错误?

如果我这样做,一切正常:

echo $class->var1;
Run Code Online (Sandbox Code Playgroud)

Ali*_*guy 6

for($i = 1; $i <= 4; $i++){
    $var = 'var' . $i;
    echo $class->$var;
}
Run Code Online (Sandbox Code Playgroud)

或者,如评论中所述,这将适用于较新版本的PHP

for($i = 1; $i <= 4; $i++){
    $class->{'var' . $i}
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为`$ class - > {'var'.$ i}`也适用于以后的PHP版本. (3认同)