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ランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスメソッドの定義が長...
-
ラッパークラスって何ですか?
-
php、可変プロパティ名について
-
phpのクラスにて別ファイルの変...
-
いいかげんxamppなんとかしたい...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
<大至急!>ご教授願います。
-
メレンゲの歴史
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
トランザクションが原因?DBに...
-
リンク先を隠す方法はないでし...
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
PHPでネットワークドライブのop...
-
smartyでホームページ上の画像...
-
コマンドプロンプト エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスメソッドの定義が長...
-
ラッパークラスって何ですか?
-
'_'(アンダースコア)の使い方...
-
class定義のphpをファイル分割...
-
配列とオブジェクトの違い
-
PHP4、PHP5 1ファイル複数クラ...
-
関数定義の関数名の前にある&(...
-
php、可変プロパティ名について
-
クラス設計の良い参考書を教え...
-
phpのクラスにて別ファイルの変...
-
class.upload.phpの戻り値(返...
-
【PHP】クラス と 関数 の違い
-
php インスタンスとオブジェク...
-
Re: Cookieを使ってオブジェク...
-
PHPでサブクラスからスーパクラ...
-
クラス
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
おすすめ情報