回答編集履歴

2

前提の追加

2021/11/07 08:38

投稿

yukapome789
yukapome789

スコア361

test CHANGED
@@ -14,17 +14,21 @@
14
14
 
15
15
  画面というより、配列をどのクラスからも使えるようにしたい、ということでよろしいですか?
16
16
 
17
+ `$cardInstanceList` を、どこかのクラス内に定義するかそうじゃないかで話が変わってくるので
17
18
 
18
-
19
- であれば「static」を使う方法と、「const」を使う方法があります。
20
-
21
- staticはオブジェクトをシングルトンとして扱うための修飾子ですが上書き可能なため
22
-
23
- constを使って定義する方法が良いかなと思います。
19
+ クラス内に定義する前提で回答します
24
20
 
25
21
 
26
22
 
23
+ オブジェクトを使い回す方法には「static」を使う方法と、「const」を使う方法があります。
24
+
25
+ staticはオブジェクトをシングルトンとして扱うための修飾子ですが、上書き可能なため危険です。
26
+
27
+ なのでconst(上書き不可変数とする修飾子)を使って定義する方法が良いかなと思います。
28
+
29
+
30
+
27
- ~~ただし配列内ではnewできないため、アプリケーション起動時などでクラスのコンストラクタで、プロパティの配列($cardInstanceList)にカードの情報をセットしてあげる必要があります。~~
31
+ ただしクラスプロパティの配列内ではnewできないため、アプリケーション起動時などでクラスのコンストラクタで、プロパティの配列($cardInstanceList)にカードの情報をセットしてあげる必要があります。
28
32
 
29
33
  ※クラス外であればnewできるようです。
30
34
 

1

コメントで指摘された誤りの修正

2021/11/07 08:38

投稿

yukapome789
yukapome789

スコア361

test CHANGED
@@ -1,6 +1,8 @@
1
- まず、配列内でnewはできないです。
1
+ ~~まず、配列内でnewはできないです。~~
2
2
 
3
+ ※コメントで指摘いただいたのですが配列内でnewできないのはクラスプロパティのみで、クラス外のプロパティであれば可能なようです。
4
+
3
- 参考: [【PHP】クラスプロパティの値には、動的な値を代入することができないようです。](https://qiita.com/H40831/items/15ebfbf7d9c05001b6df)
5
+ 参考: [【PHP】クラスプロパティの値には、動的な値を代入することができないようです。](https://qiita.com/H40831/items/15ebfbf7d9c05001b6df)~~
4
6
 
5
7
 
6
8
 
@@ -22,7 +24,9 @@
22
24
 
23
25
 
24
26
 
25
- ただし配列内ではnewできないため、アプリケーション起動時などでクラスのコンストラクタで、プロパティの配列($cardInstanceList)にカードの情報をセットしてあげる必要があります。
27
+ ~~ただし配列内ではnewできないため、アプリケーション起動時などでクラスのコンストラクタで、プロパティの配列($cardInstanceList)にカードの情報をセットしてあげる必要があります。~~
28
+
29
+ ※クラス外であればnewできるようです。
26
30
 
27
31
 
28
32