foreach中的变量命名

时间:2019-01-05 22:59:06

标签: php

我正在使用foreach语句从SQL表提取数据,并正在使用数组循环遍历我需要的每条数据。以前,我只是将提取数据的变量设置为等于数组ID。现在,我想将一个字符串连接到数组ID名称,但是不确定如何完成此操作。

基本上,我只想在每个变量名中添加“ _type”,这样它就不再命名为$ Banana而是§Banana_type。

我尝试将$$ val更改为$$ val。 '_类型'。但是,这没有用。我很确定我只需要以某种方式连接'_type',如果有人可以帮助我,我将不胜感激。

$variablesArray = array(
  "Apple",
  "Banana",
);

foreach($variablesArray as $val) {
  $query = "SELECT * FROM {$tableName} WHERE ID = '{$CI_NOYEARS}'";
  $result = mysqli_query($conn, $query) or die('error');
  while($data = mysqli_fetch_array($result)) {
      $$val = $data["COINFO"];
  }
}

1 个答案:

答案 0 :(得分:0)

如果您确实确实需要变量变量,则可以连接变量名称并将其存储在另一个变量中,如下所示:

$varName = 'foo'.'1';
$$varName = 1; // $foo1 = 1;

或者您可以在没有变量之间进行串联:

$var = 'v';
echo ${$var.'ar'}; // echoes 'v'

但是您可以看到它变得多么可笑。使用变量变量是一个糟糕的设计选择,并且还会使您的IDE智能感知,静态分析器等混淆。请不要使用变量变量。更好的选择是数组:

$myVars = [];
$myVars['foo'] = 'bar';