ショコラ
PHPで配列の可変変数を作成するには?
今のところ、eval関数 を使うが答え。
何か他の方法があるかもしれないけど。
もっさん先輩
可変変数に配列のキーも含めようとすると、「Undefined variable」になります。
<?php
$var = 'photo[1]';
$val = 'mosss.png';
$$var = $val;
var_dump($photo);
# php a.php
PHP Warning: Undefined variable $photo in a.php on line 5
NULL
extract でもダメですね。登録された変数の数には0が返ってきます。
<?php
$var = 'photo[1]';
$val = 'mosss.png';
echo extract([$var=>$val]),PHP_EOL;
var_dump($photo);
# php a.php
0
PHP Warning: Undefined variable $photo in /var/www/html/a.php on line 5
NULL
可変変数に配列のキーも含めるには、eval関数を使います。
<?php
$var = 'photo[1]';
$val = 'mosss.png';
eval("\${$var} = \$val;");
var_dump($photo);
# php a.php
array(1) {
[1]=>
string(9) "mosss.png"
}
以上