Movable Type の配列変数のコピーの仕方
2016-09-20
1分で読了
更新: 2025-12-14
目次
Movable Type で配列の変数をコピーする時は注意が必要です。
例えば、下記のようにして配列を作ります。
この配列の要素数を下記のように出力すると、
チーム1に登録された選手は「」人です。
出力結果は、
チーム1に登録された選手は「3」人です。
となります。この team1 配列変数を team2 にコピーします。このとき、下記のようにコピーしてみます。
team2 の要素数を出力してみようとしたところ、
チーム2に登録された選手は「」人です。
出力結果は、
チーム2に登録された選手は「バッジョクライフジーコ」人です。
となってしまいます。つまり、配列変数を mt:Var してしまうと文字列になってしまい、その文字列が team2 にセットされてしまったのです。
配列をコピーする時は下記のようにします。
こうすると、
チーム2に登録された選手は「」人です。
の出力結果は、
チーム2に登録された選手は「3」人です。
となります。
なお、このコピーが配列変数の参照のコピーなのか、値そのもののコピーなのかを調べてみます。
このように team1 にだけ選手を追加して team1 と team2 を出力してみると、
チーム1に登録された選手は「」人です。
チーム2に登録された選手は「」人です。
結果は、
チーム1に登録された選手は「4」人です。
チーム2に登録された選手は「3」人です。
となり、元の配列を参照しているわけではなく、新たに配列が作られたことが分かります。
最後にコードをまとめておきます。
チーム1に登録された選手は「」人です。
===== この方法はNG
=====
チーム1に登録された選手は「」人です。
チーム2に登録された選手は「」人です。
以上です。