PHPのforでループする際に、変数を「初期化」できないでしょうか?
「初期化」というのは
「そのループを実行する関数に渡された引数へ初期化」という意味で
「for
を実行するrand_insert_posts
に渡された$kind
へ初期化」という意味です。
つまり以下で、ループのたびに$kind === null
であると判定し、$kinds = ['a','b','c'];
をランダムにダンプしたいということになります。
以下はその判定ができず、同じ値になってしまうのです。
<?php // null を渡すことで、ランダムな $kind を posts テーブルに insert したい rand_insert_posts( 2, null ); // insert を実行 function rand_insert_posts( $count, $kind = null ){ for ( $posted=0; $posted<$count; $posted++ ) { // ランダムな $kind を取得 if ( $kind === null ) { $kinds = ['a','b','c']; $kind = $kinds[ array_rand( $kinds ) ] ; } // $kind が同じ値になってしまう var_dump($kind); // $kind が同じ値になってしまうため、特定の $kind しか insert できないのが問題 $query = "insert posts (kind) values( $kind )"; } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/17 13:25 編集
退会済みユーザー
2021/01/17 13:24
退会済みユーザー
2021/01/17 13:41 編集
2021/01/17 13:41 編集