teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

プロパティをクラス直下で宣言する場合について追記

2019/11/13 02:27

投稿

maisumakun
maisumakun

スコア146674

answer CHANGED
@@ -1,3 +1,17 @@
1
1
  > 全てのプロパティは定義・参照する際に`$this->`を付けるべきなのか
2
2
 
3
- 、そのとおりです。PHPではそう書かないと**ローカル変数**となってしまい、プロパティとして動作しません。
3
+ コンストラクタで定義する場合や、メソッドから読み書きする場合は、そのとおりです。PHPではそう書かないと**ローカル変数**となってしまい、プロパティとして動作しません。
4
+
5
+ クラス直下に書く場合は、`$foo`だけでプロパティを意味します(なお、この場合定数式しか初期化に使えません)。
6
+
7
+ ```php
8
+ class someClass {
9
+ // ここで宣言したものはプロパティになる
10
+ public $foo = 3;
11
+
12
+ public function __construct() {
13
+ // メソッド内からは$this経由が必要
14
+ $this->bar = date('Y');
15
+ }
16
+ }
17
+ ```