我试图从变量名创建一个数组。我想从一个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});
?>
答案 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;