从变量名创建数组

时间:2017-02-21 17:36:10

标签: php sql arrays

我试图从变量名创建一个数组。我想从一个sql表中获取信息并将该信息保存在一个数组中,但是我收到一条错误,说“不能使用[]进行读取”。为什么呢?

<?php
// SQL Selection CurrentProduct Attributes
$sql = "SELECT * FROM $current_product_name";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
${current_product_name ._array[]} = $row; // add the row in to the array
}
${current_product_name ._length} = count({$current_product_name . _array});
?>

1 个答案:

答案 0 :(得分:2)

不要让树木隐藏森林:

$foo = []; // OK (create empty array with the PHP/5.4+ syntax)
$foo[] = 10; // OK (append item to array)
echo $foo[0]; // OK (read one item)
echo $foo[]; // Error (what could it possibly mean?)

variable variables表示法需要字符串(文字或变量):

$current_product_name = 'Jimmy';
${$current_product_name . '_array'}[] = 33;
var_dump($Jimmy_array);
array(1) {
  [0]=>
  int(33)
}

说,你的方法看起来像是一种产生不可维护代码的好方法。为什么不是具有已知名称的数组?

$products[$current_product_name][] = $row;