配列を指す可変変数がどのように処理されるのか疑問に思っています。以下のコードをご覧ください。
$a = new stdClass();
$a->b = array('start' => 2);
$c = 'b';
$d = 'start';
print $a->$c; // => Array
print $a->$c['start']; // => Array
print $a->$c[0]; // => Array
print $a->$c[0][0]; //=> PHP Fatal error: Cannot use string offset as an array in php shell code on line 1
私が期待する最初の版画、私が期待しない 2 番目の版画、または 3 番目の版画。$a->$c の評価が明らかに文字列であることを認識した後、4 番目が期待されます。しかし、なぜこれが機能するのですか:
$t = $a->$c;
print $t['start']; //=> 2
うまくやる方法を知る必要があるというよりも、興味があるのでもっと質問しています
$e = 'start';
$a->$c[$e]
変数変数の使用によって返される配列に直接インデックスを付けることができない理由を知っている人はいますか?