1

配列であるオブジェクト プロパティから値にアクセスするにはどうすればよいですか?

例えば:

$myObject = new MyClass;

$myObject->myproperty = array(1 => 'English', 2 => 'French', 3 => 'German');

から配列キーを使用して個々のプロパティ値を取得するにはどうすればよい$myObject->myproperyですか? 使え$myObject->myproperty[3]ません。

編集:実際に使用する$myObject->myproperty[3]と機能します。私が問題を見つけるのは、次のようにするときです。

$myproperty = 'myproperty';

echo $myObject->$myproperty[3]

// result : 'r'

それでも、var_dump を実行すると$myObject->$myproperty、配列が表示されます。

4

3 に答える 3

1

これを試して:

$myObject->myproperty[3]

これの代わりに:

$myObject->$myproperty[3]
于 2012-12-25T00:21:50.177 に答える
0
$tmp = $myObject->$myproperty;
echo $tmp[1];
//or
echo $myObject->{$myproperty}[1];
于 2012-12-25T00:27:05.323 に答える
0

myproperty配列値にアクセスするには、次のことを試してください。

$myObject->{$myproperty}[3]

それ以外の:

$myObject->$myproperty[3]

これらは変数変数と呼ばれます。詳細については、http://php.net/manual/en/language.variables.variable.phpを参照してください。

echo結果が得られた理由rは、$mypropery値がmyproperyであり、これを実行したためです。これecho $myObject->$myproperty[3]は、3番目の文字配列キーの値が必要であるという意味になります。配列はゼロベースであるため、これはr結果として文字を取得することを意味します。これにより、結果がであった理由が明らかになることを願っていますr

于 2012-12-25T00:27:23.947 に答える