/ category-web

【PHP】変数の結合


変数に変数をくっつけて変数として使いたいときのメモ。

自分でも何を言っているのかよく分からないんだけど、つまり $image という変数に、1~10の数値が入ってる $number という変数をくっつけて、$image1〜image10 として使いたいという話。

結論から言うと、

${‘image’.$number}

と書けばOK。
$number = 1 であれば、$image1 となる。


蛇足。

$image1 = get_field( 'image1' );
if( $image1 ){ echo $image1; }

$image2 = get_field( 'image2' );
if( $image2 ){ echo $image2; }

$image3 = get_field( 'image3' );
if( $image3 ){ echo $image3; }

$image4 = get_field( 'image4' );
if( $image4 ){ echo $image4; }

例は適当に書いたけど、こんな感じのが10まで必要で、どう考えても面倒くさかったので、foreachで回そうとしたんですね。

でも変数に変数をくっつける方法がわからないし、変数の結合とか、変数の代入とか調べても全然出てこないし、そもそもこの処理は一般的に何ていうのか知らないし(←間違いなくこれが検索しても出てこない一番の原因)

もうよくわかんないのでSEさんに助けを求めて、「foreachで1~10までの数値で回したくて、$imageのあとに1~10の数値をつけて$image1〜$image10として扱いたくてウンタラカンタラ…」と完全に口頭説明をし、
「ああそれはね…」って教えてもらったのが上記の方法です。

持つべきものは知識人。
Google先生は偉大だが、まず取っ掛かりの知識が無い者には答えを授けてくれない、そんなスパルタ先生なのだ…。

というわけで上記をforeachで回す場合はこちら。

foreach( range(1,10) as $i ){
    ${'image'.$i} = get_field('image'.$i);
    if( ${'image'.$i} ){
        echo ${'image'.$i};
    }
}
 

コメントを残す

CAPTCHA