プロが教えるわが家の防犯対策術!

下記のようなソースがあるのですが、下記の部分については規則性があります。
$test1a = $test2a;
$test2a = $test3a;
$test3a = $test4a;

そのため、上記を下記のような感じで書きたいと思ったのですが、下記ではエラーになってしまい、どのように記述すれば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。
for($i=1; $i<4; $i++) {
$test . $i . a = $test $i+1. a;
}

【ソース】
<?php
$test1a = 1;
$test2a = 2;
$test3a = 3;
$test4a = 4;

echo "test1a = " . $test1a;
echo "<br>";
echo "test2a = " . $test2a;
echo "<br>";
echo "test3a = " . $test3a;
echo "<br>";
echo "test4a = " . $test4a;
echo "<br>";

$test1a = $test2a;
$test2a = $test3a;
$test3a = $test4a;
$test4a = "";

echo "test1a = " . $test1a;
echo "<br>";
echo "test2a = " . $test2a;
echo "<br>";
echo "test3a = " . $test3a;
echo "<br>";
echo "test4a = " . $test4a;
echo "<br>";
?>

以上、宜しくお願いします。

A 回答 (2件)

元ソースを活かして書くなら、こんな感じでいかがでしょうか。



for($i=1; $i<4; $i++) {
$var_name_current = 'test' . $i . 'a';
$var_name_next = 'test' . ($i + 1) . 'a';

$$var_name_current = $$var_name_next;
}


配列を使うところかな、とは思いますが…
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご教示いただいたソースで意図した動作となりました。

それとosamuyさんもご指摘のとおり、配列を使う方が良さそうですね。

ともあれ、このたびはどうもありがとうございました。
以上、よろしくお願いします。

お礼日時:2011/06/26 21:35

ANo.1さんが言っているように、何故配列を使うほうが良いかと。



$test_a = array( 1, 2, 3, 4 );

array_shift( $test_a ); # 先頭要素を消して、前に詰める。
array_push( $test_a, '' ); # 末尾に空白を追加。

逆に、配列を使わない理由が分からなかったり。

参考URL:http://www.ideone.com/gMS8P
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
確かに配列を使う方が良さそうですね。

ちなみに現在作成しているものの関係上、途中が削除され、その後が1つずつずれることもあるのですが、その場合、下記のようにunsetを使えば大丈夫そうな感じですね。
http://dhive.jp/blog/yama/?p=2193

以上、よろしくお願いします。

お礼日時:2011/06/26 21:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!