質問編集履歴
2
追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -79,4 +79,94 @@
|
|
|
79
79
|
クラスの中にfunctionが二つあり、一つ目のfunctionで処理した結果を二つ目のfunctionで利用する方法がわかりません。
|
|
80
80
|
もともとグローバル変数を利用していたがグローバル変数の使用が禁止されてしまっためその他の方法を探しています。
|
|
81
81
|
$dataをsetReserveで処理し$data1に中身を書き換えたものをisTantoで処理したいという流れです。
|
|
82
|
-
ご協力をお願いします。
|
|
82
|
+
ご協力をお願いします。
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
<?php
|
|
86
|
+
|
|
87
|
+
class First{
|
|
88
|
+
|
|
89
|
+
public $data;
|
|
90
|
+
public function __construct(){
|
|
91
|
+
$this->data=array(
|
|
92
|
+
'RT' => array(0,1,1,0,0,1,1,0,0),
|
|
93
|
+
'YN' => array(0,0,1,1,0,0,0,0,0),
|
|
94
|
+
'KY' => array(0,0,0,0,0,0,0,0,0),
|
|
95
|
+
'KH' => array(0,0,0,1,1,0,0,0,0),
|
|
96
|
+
'MM' => array(0,0,0,0,0,0,0,0,0));
|
|
97
|
+
}
|
|
98
|
+
public function setReserve($start,$course_time,$tanto){
|
|
99
|
+
|
|
100
|
+
//function作成
|
|
101
|
+
$point=$start-10;
|
|
102
|
+
//起点を決める
|
|
103
|
+
$yoyaku=array_slice($this->data[$tanto],$point,$course_time);
|
|
104
|
+
//var_dump($yoyaku);
|
|
105
|
+
|
|
106
|
+
$han=1;
|
|
107
|
+
|
|
108
|
+
if(in_array($han,$yoyaku)){
|
|
109
|
+
echo '予約追加できませんでした…';
|
|
110
|
+
return $this->data;
|
|
111
|
+
}
|
|
112
|
+
else
|
|
113
|
+
{
|
|
114
|
+
$yoyaku2=str_replace(0,1,$yoyaku);
|
|
115
|
+
//var_dump($yoyaku2);
|
|
116
|
+
global $yoyaku3;
|
|
117
|
+
$yoyaku3=array_splice($this->data[$tanto],$point,$course_time,$yoyaku2);
|
|
118
|
+
//var_dump($yoyaku3);
|
|
119
|
+
//var_dump($data);
|
|
120
|
+
//$data1=$data;
|
|
121
|
+
//var_dump($data);
|
|
122
|
+
$data1=$this->data;
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
echo '予約追加できました!';
|
|
126
|
+
return $data1;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
//$obj= new First();
|
|
133
|
+
//$obj->setReserve(12,2,'KY');
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class Next extends First{
|
|
137
|
+
function getTanto($start2,$course_time2,$value_array2){
|
|
138
|
+
//functionを作成する
|
|
139
|
+
$point2 = $start2-10;
|
|
140
|
+
//起点を決める
|
|
141
|
+
foreach($value_array2 as $key => $youso){
|
|
142
|
+
//繰り返し処理
|
|
143
|
+
$yoya = array_slice($value_array2[$key],$point2,$course_time2);
|
|
144
|
+
//該当時間を切り出す
|
|
145
|
+
//var_dump($yoyaku);
|
|
146
|
+
if ( array_sum($yoya)== 0 ){
|
|
147
|
+
//足して
|
|
148
|
+
//もし0ならば$keyを$retに代入する
|
|
149
|
+
$ret[]=$key;
|
|
150
|
+
//出てきた担当者を配列に入れていく
|
|
151
|
+
// var_dump($ret);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
foreach($ret as $value){
|
|
155
|
+
echo $value;
|
|
156
|
+
}
|
|
157
|
+
//functionを$retで返す
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
$comb= new Next();
|
|
165
|
+
$value_array2 = $comb->setReserve(12,2,'KY');
|
|
166
|
+
$comb->getTanto(12,2,$value_array2);
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
コード
|
|
170
|
+
```
|
|
171
|
+
上記のものが出来ないのをうけて承継形式で作り変えてみたのですが、
|
|
172
|
+
それでは関数の利用と変わらないとの指摘を受けてしまい、苦戦しているところです。
|
1
書式の改善
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
クラス化を行いたいのですが、うまくできません。
|
|
2
|
-
内容としては$dataを最初のfunctionで配列の一部を変更し
|
|
3
|
-
その後isTantoのfunctionで変更後の配列を利用して結果を反映させたいです。
|
|
4
|
-
|
|
1
|
+
`````
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
2
|
<?php
|
|
12
3
|
|
|
13
4
|
class hoge{
|
|
@@ -45,7 +36,7 @@
|
|
|
45
36
|
//var_dump($data);
|
|
46
37
|
//$data1=$data;
|
|
47
38
|
//var_dump($data);
|
|
48
|
-
|
|
39
|
+
|
|
49
40
|
$data1=$this->data;
|
|
50
41
|
|
|
51
42
|
echo '予約追加できました!';
|
|
@@ -81,4 +72,11 @@
|
|
|
81
72
|
|
|
82
73
|
$obj = new hoge();
|
|
83
74
|
$obj->setReserve(12,2,'KY');
|
|
84
|
-
$obj->isTanto(
|
|
75
|
+
$obj->isTanto();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
クラス化を行いたいです。
|
|
79
|
+
クラスの中にfunctionが二つあり、一つ目のfunctionで処理した結果を二つ目のfunctionで利用する方法がわかりません。
|
|
80
|
+
もともとグローバル変数を利用していたがグローバル変数の使用が禁止されてしまっためその他の方法を探しています。
|
|
81
|
+
$dataをsetReserveで処理し$data1に中身を書き換えたものをisTantoで処理したいという流れです。
|
|
82
|
+
ご協力をお願いします。
|