お世話になっております。
https://www.php.net/manual/ja/language.variables.variable.php
上記のサイトにこのようなコードがあります。
PHP
1<?php 2class foo { 3 var $bar = 'I am bar.'; 4 var $arr = array('I am A.', 'I am B.', 'I am C.'); 5 var $r = 'I am r.'; 6} 7 8$foo = new foo(); 9$bar = 'bar'; 10$baz = array('foo', 'bar', 'baz', 'quux'); 11echo $foo->$bar . "\n"; 12echo $foo->{$baz[1]} . "\n"; 13 14$start = 'b'; 15$end = 'ar'; 16echo $foo->{$start . $end} . "\n"; 17 18$arr = 'arr'; 19echo $foo->{$arr[1]} . "\n"; 20 21?>
出力の結果として
I am bar.
I am bar.
I am bar.
I am r.
がされるみたいなのですが、
一番下の I am r. がなぜこのように出力されるのかがわかりません。
$arr[1]はrなので
echo &foo->{$arr[1]}がecho $foo->rになると思っているのですが
rではなく$rにしなければアクセスはできないと思うのですが
なぜrのままで$rにアクセスできているのでしょうか??
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/04 22:59
2020/09/04 23:12
退会済みユーザー
2020/09/04 23:15
2020/09/04 23:23
2020/09/04 23:33