1: <?php
2: class 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');
11: echo $foo->$bar . "\n";
12: echo $foo->$baz[1] . "\n";
13:
14: $start = 'b';
15: $end = 'ar';
16: echo $foo->{$start . $end} . "\n";
17:
18: $arr = 'arr';
19: echo $foo->$arr[1] . "\n";
20: echo $foo->{$arr}[1] . "\n";
21:
22: ?>
上記のコードの実行結果が、
I am bar. ←①
I am bar. ←②
I am bar. ←③
I am r. ←④
I am B. ←⑤
となります。実行結果の上から①、②、③、④、⑤と番号をつけます。
①は理解できるのですが②~⑤がなぜその結果になるのかわかりません。なぜこうなるのでしょうか?
11行目はfooクラスから作成されたfooオブジェクトのメンバ変数$barを表示させる、ということだと思います。そうすると12行目はfooオブジェクトのメンバ変数$baz[1]を…ということかと思うのですが、fooクラスのメンバ変数は$bar,$arr,$rなのでメンバ変数に$baz[1]はありません。
③~⑤も何なのかよくわかりません。php.netの言語リファレンスの可変変数のサンプルコードで、可変変数の説明は理解できるのですが、クラスのプロパティには可変プロパティ名でアクセスできる…、という部分が理解できません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- 英語 "where I am"のニュアンスについて 3 2022/12/08 13:51
- Visual Basic(VBA) この関数と同じ処理をVBAで行うにはどうしたら良いでしょうか? これは、1列の中に同じ値が複数存在し 21 2022/07/07 07:48
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- PHP c言語 文字 - '1'+26 3 2022/03/26 20:58
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字連結中の三項演算子について
-
class定義のphpをファイル分割...
-
Cookieを使ってオブジェクトの...
-
PHPでサブクラスからスーパクラ...
-
Java のクラスには修飾子がある...
-
PHPでオブジェクト指向開発して...
-
クラス
-
require_once で読み込まれたか?
-
リンク先を隠す方法はないでし...
-
htmlの書き換え
-
拡張子php画像をjpg画像等に変...
-
symfonyのCriteriaで実行すると...
-
jar化すると画像が消える
-
Pythonで画像の読み込みが上手...
-
pear パッケージインストールで...
-
cakephp views/pagesの中にイ...
-
php5,MySQL5で文字化けが起こる
-
PHPとhtmlの関係
-
バッチを用いたフォルダの自動移動
-
mail関数を使った際の文字コー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスにて別ファイルの変...
-
ラッパークラスって何ですか?
-
class定義のphpをファイル分割...
-
phpのクラスメソッドの定義が長...
-
'_'(アンダースコア)の使い方...
-
配列とオブジェクトの違い
-
クラス
-
PHPのクラス名の付け方
-
PHPでオブジェクト指向開発して...
-
メンバインスタンスへのアクセ...
-
codeigniter cartのoptions
-
ユーザー定義関数とクラスの違...
-
require_onceについて
-
ソースファイルの分け方について
-
PHPでサブクラスからスーパクラ...
-
データベースで値をインクリメ...
-
$this->pets[$i]->report();の...
-
【PHP】privateな静的メソッド...
-
php、可変プロパティ名について
おすすめ情報