yuheijotaki.com

【PHP】変数名に変数の値を代入する

$array = [
  'name01' => 'Taro',
  'name02' => 'Hanako',
  'name03' => 'Jiro'
];

という配列があって、

$targetName = 'Hanako';

のように、宣言した変数の値 Hanako とオブジェクトの値がマッチする場合を判定し、

$name02 = true;

という変数を作りたい場合、

<?php
  $targetName = 'Hanako';
  $array = [
    'name01' => 'Taro',
    'name02' => 'Hanako',
    'name03' => 'Jiro'
  ];
  foreach ($array as $key => $value){
    // 変数 key を宣言
    // オブジェクトの value が $targetName と同じ場合は true にする
    if (strpos($targetName,$value) !== false) {
      ${$key} = true;
    } else {
      ${$key} = false;
    }
  }
  // $name01 = false;
  // $name02 = true;
  // $name03 = false;
?>

とする。

${$variableName} と書くことで、変数名に変数の値を代入できる。


参考: