[php]連番付きの変数を一気に作る方法とか扱い方とか

jsと違ってphpは宣言周りがヌルいですね。

どういうことか

例えばこんな感じで

$sample01 = ***;
$sample02 = ***;
$sample03 = ***;
$sample04 = ***;
⋮
$sample99 = ***;

多次元連想配列を変数に格納したかったとする。

グループ分けされてるので、変数名の一部は連番にしたかったりする。

あんまりないけどたまにある、変数に連番を振りたいし一気に値を付けていきたいみたいな、そういう場合に。

こんな感じですね

$listNum = 30;
for($i=0;$i<=$listNum;$i++){
    $postNum = sprintf('%02d', $i+1);  //連番を01とかの2桁にしたい場合の調整
    ${"example{$postNum}"} = $exampleArray[$i];
}

繊細に考える必要はなくて、結構無理くり連結できちゃうんですね。

$sampleNum = 01;

${"sample{$sampleNum}"}  //$sample01

変数名を全部{}で包めばいい、っていうのと、””の中なら{}で囲んだ変数が使える、っていうのを使っているということですね。

応用するとこんな感じにもなる。

$sampleNum = 01;
${"sample{$sampleNum}"} = $_POST["sample{$sampleNum}"];

“”で囲んでいるっていうルールに準拠してるから、[]の中にも使えるというね。

注意点

アナログ面で気をつけようって話くらいか。

{}が二重になってたりして、半端にコピペしちゃってぶっ壊れてることに気が付かずに何時間も悩んでるみたいなことがあった。

悲しみを経験する人は少ないほうがいい。

頭が元気なうちにやるのがいい。

疲れてるときはいくら頑張っても気が付かないときは気がつけない。

コメント

タイトルとURLをコピーしました