使用var来描述类的var

时间:2011-12-19 22:56:20

标签: php oop scope

基本上我想访问类的变量,但是我动态地更改了所需变量的名称。我有一些问题要准确解释,但看到我的代码,也许它变得更清楚了:

$requirement = array('req1','req2');
foreach($requirements as $requirement)
        {
            // CHECK FOR REQUIRED PARAMETERS
            if(!isset($this->$requirement)) { echo 'foo'; }
        }

所以我实际上想要访问$this->req1等等,但是如何使用我的iterator-variable访问它?我不确定这是否正确,难以找到。

另外:在同样的情况下我如何访问parent`变量?

2 个答案:

答案 0 :(得分:4)

$$(或使用魔法吸气剂/制定者)

if(!isset($this->$$requirement)) { echo 'foo'; } 

if(!isset($this->{$requirement})) { echo 'foo'; } 

答案 1 :(得分:1)

马克说,我会使用魔法吸气剂和制定者。像这样:

<?php

class MyClass
{
    protected $data;

    public function __get($key)
    {
        return $this->data[$key]
    }

    public function __set($key, $value)
    {
        $this->data[$key] = $value;
    }
}

$var = 'adsdas';
$var2 = 'sadkajds';

$obj = new MyClass;
$obj->$var = 1;
$obj->$var2 = 1;