1

クラスに「aip-aup」というプロパティを作成する必要がありますが、機能させることができません。

最初に、プロパティ定義でそれを立てようとしました。残念ながら、括弧で囲まれたプロパティ定義は許可されていません。

これは失敗します ( で__construct()):

$this->${'aip-aup'} = array();

「未定義の変数 'aip-aup'」というエラーが発生します。

これも(__setメソッド内で):

$this->${'aip-aup'}[$property] = $value;

また、カスタムヘルパーメソッドを作成しようとしましたが、まったく何もしません:

$this->createProperty('aip-aup', array());

ここで何か助けはありますか?

プロパティは公開する必要があるため、実行可能である必要がありますか?

4

1 に答える 1

1

このようなことをする必要がある場合は、何か間違ったことをしているということであり、PHP をハックしようとするよりも、考えを変えた方が賢明です。

ただし、必要に応じて、これを試すことができます。

class Test {
    public $variable = array('foo'=>'bar');

public function __get($name){
    if ($name == 'aip-aup'){
        return $this->variable;
        }
    }
}   

$test = new Test();
$func = 'aip-aup';
$yourArray = $test->$func;
echo $yourArray['foo'];
于 2013-08-06T08:59:58.343 に答える