PHPで配列の可変変数を作成するには?

ショコラ
ショコラ

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"
}

以上

Scroll to Top