質問編集履歴

3

コードにコメントを追加

2021/01/17 13:51

投稿

wakame2
wakame2

スコア2

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,13 @@
22
22
 
23
23
 
24
24
 
25
+ // null を渡すことで、ランダムな $kind を posts テーブルに insert したい
26
+
25
- rand_insert_posts( 2 );
27
+ rand_insert_posts( 2, null );
26
28
 
27
29
 
30
+
31
+ // insert を実行
28
32
 
29
33
  function rand_insert_posts( $count, $kind = null ){
30
34
 
@@ -32,7 +36,9 @@
32
36
 
33
37
  for ( $posted=0; $posted<$count; $posted++ ) {
34
38
 
39
+
40
+
35
-
41
+ // ランダムな $kind を取得
36
42
 
37
43
  if ( $kind === null ) {
38
44
 
@@ -42,11 +48,17 @@
42
48
 
43
49
  }
44
50
 
51
+
52
+
53
+ // $kind が同じ値になってしまう
54
+
55
+ var_dump($kind);
56
+
45
57
 
46
58
 
47
- var_dump($kind); // 同じ値になってしまう
59
+ // $kind 同じ値になってしまうため、特定の $kind しか insert できないのが問題
48
60
 
49
-
61
+ $query = "insert posts (kind) values( $kind )";
50
62
 
51
63
  }
52
64
 

2

説明を追加

2021/01/17 13:51

投稿

wakame2
wakame2

スコア2

test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,19 @@
2
2
 
3
3
 
4
4
 
5
+ 「初期化」というのは
6
+
5
- 初期化」というのは、「そのループを実行する関数に渡された引数へ初期化」という意味です。
7
+ 「そのループを実行する関数に渡された引数へ初期化」という意味で
8
+
9
+ 「`for`を実行する`rand_insert_posts`に渡された`$kind`へ初期化」という意味です。
6
10
 
7
11
 
8
12
 
9
13
  つまり以下で、ループのたびに`$kind === null`であると判定し、`$kinds = ['a','b','c'];`をランダムにダンプしたいということになります。
14
+
15
+
16
+
17
+ 以下はその判定ができず、同じ値になってしまうのです。
10
18
 
11
19
  ```
12
20
 
@@ -14,11 +22,11 @@
14
22
 
15
23
 
16
24
 
17
- test_rand_insert_posts( 2 );
25
+ rand_insert_posts( 2 );
18
26
 
19
27
 
20
28
 
21
- function test_rand_insert_posts( $count, $kind = null ){
29
+ function rand_insert_posts( $count, $kind = null ){
22
30
 
23
31
 
24
32
 

1

タイトル訂正

2021/01/17 13:22

投稿

wakame2
wakame2

スコア2

test CHANGED
@@ -1 +1 @@
1
- PHPfor内で、引数の値をリセットしたい
1
+ PHPfor内で、引数の値を初期化したい
test CHANGED
File without changes