質問編集履歴

1

投稿の際に、後半の内容が消えてしまっていたため

2021/05/27 12:06

投稿

ra-men_love
ra-men_love

スコア6

test CHANGED
File without changes
test CHANGED
@@ -10,4 +10,166 @@
10
10
 
11
11
  の4つのファイルを作成し、**「Admin.php」**から商品名の変更や在庫の変更といったことのできる管理者画面の作成を行っています。
12
12
 
13
- その際に、**「Goods.php」**に連想多次元配列として格納している商品の後ろに**「Admin.php」**
13
+ その際に、**「Goods.php」**に連想多次元配列として格納している商品の後ろに**「Admin.php」**から新たな商品の要素を追加したいと考えています。
14
+
15
+ **「VendingMachineController.php」**に**$modelGoods**としてインスタンスを作成しています。
16
+
17
+
18
+
19
+ ### 現在、発生している問題
20
+
21
+ 「Admin.php」から連想多次元配列への追加を行う際に、エラーが出てしまい、うまくシステムが作動しません。
22
+
23
+
24
+
25
+ ### 該当のソースコード
26
+
27
+ ```PHP
28
+
29
+ Goods.php
30
+
31
+
32
+
33
+ class Goods{
34
+
35
+ private $goods = [
36
+
37
+ ['name' => '緑茶', 'cost' => 100, 'stock' => 5],
38
+
39
+ ['name' => 'ウーロン茶', 'cost' => 120, 'stock' => 5],
40
+
41
+ ['name' => 'コーラ', 'cost' => 150, 'stock' => 5],
42
+
43
+ ['name' => 'サイダー', 'cost' => 150, 'stock' => 5],
44
+
45
+ ['name' => 'ジンジャーエール', 'cost' => 170, 'stock' => 5],
46
+
47
+ ];
48
+
49
+
50
+
51
+ public function setCreateGoods($name){
52
+
53
+ $this -> goods['name'] = $name;
54
+
55
+ }
56
+
57
+ }
58
+
59
+ ```
60
+
61
+ ```PHP
62
+
63
+ Admin.php
64
+
65
+
66
+
67
+ public function addGoods($modelGoods){
68
+
69
+ echo "追加する商品名を入力してください\n";
70
+
71
+ $output6 = trim(fgets(STDIN));
72
+
73
+ $modelGoods -> setCreateGoods($output6);
74
+
75
+ }
76
+
77
+ ```
78
+
79
+ ### 試したこと
80
+
81
+ ①配列への追加を試しました。
82
+
83
+ ```PHP
84
+
85
+ Goods.php
86
+
87
+ public function setCreateGoods($name,$cost,$stock){
88
+
89
+ $this -> goods['name'] = $name;
90
+
91
+ $this -> goods['cost'] = $cost;
92
+
93
+ $this -> goods['stack'] = $stock;
94
+
95
+ }
96
+
97
+ ```
98
+
99
+ ```PHP
100
+
101
+ Admin.php
102
+
103
+ public function addGoods($modelGoods){
104
+
105
+ echo "追加する商品名を入力してください\n";
106
+
107
+ $output6 = trim(fgets(STDIN));
108
+
109
+ echo "追加する商品の価格を入力してください\n";
110
+
111
+ $output7 = trim(fgets(STDIN));
112
+
113
+ echo "追加する商品の在庫を入力してください\n";
114
+
115
+ $output8 = trim(fgets(STDIN));
116
+
117
+ $modelGoods -> setCreateGoods($output6,$output7,$output8);
118
+
119
+ }
120
+
121
+ ```
122
+
123
+ PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + int
124
+
125
+ が表示されました。
126
+
127
+
128
+
129
+
130
+
131
+ ```PHP
132
+
133
+ Goods.php
134
+
135
+
136
+
137
+ public function setCreateGoods($name,$cost,$stock){
138
+
139
+ $this -> goods[] = ['name' => $name, 'cost' => $cost, 'stock' => $stock];
140
+
141
+ }
142
+
143
+ ```
144
+
145
+ エラー表示出て作動しませんでした。
146
+
147
+
148
+
149
+
150
+
151
+ ```PHP
152
+
153
+ Goods.php
154
+
155
+
156
+
157
+ public function setCreateGoods($name,$cost,$stock){
158
+
159
+ array_push($this -> goods,'name' => $name,'cost' => $cost,'stock' => $stock);
160
+
161
+ }
162
+
163
+ ```
164
+
165
+ 同じくエラー表示が出て作動しませんでした。
166
+
167
+
168
+
169
+
170
+
171
+ 他にも、配置を変えたり調べたのですがどうしても解決することが出来ませんでした。
172
+
173
+ 説明が分かりづらく申し訳ございません。
174
+
175
+ よろしければ、ご教授よろしくお願いいたします。