変数に変数をくっつけて変数として使いたいときのメモ。
自分でも何を言っているのかよく分からないんだけど、つまり $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};
}
}