PHP中,将变量值作为变量名

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:52:20
while ($row = $dsql->GetArray()){
$s = "lawer{$t}";
$$s[] = $row;
}

$t的值是从1开始不断循环下去的数字..
$dsql->GetArray()是把数据写入数组的类

运行后出现
Fatal error: Cannot use [] for reading

我是想把获得的数据写进一个个数组里面
就例如
$lawer1 = $row[0];
$lawer2 = $row[2];
.
.
.
.
.
应该怎样写才不会出错,
或者有没有其他方法
四楼的,其实你这样跟我的方法是一个道理,是不能把名字作为数组的名称的,一楼的不错.
但我还想问一下
${$s}和
$$s有什么分别????
$$s是把$s的值作为他的变量名,那么${$s}怎样理解呢?

$GLOBALS[$s][] = $row;

${$s}[] = $row;

楼主,麻烦你去下一个PHP手册看下吧。

可变变量
有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:
<?php
$a = 'hello';
?>
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中 hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。例如:
<?php
$$a = 'world';
?>
这时,两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。因此,可以表述为:
<?php
echo "$a ${$a}";
?>
以下写法更准确并且会输出同样的结果:
<?php
echo "$a $hello";
?>
它们都会输出:hello world。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

将$$s显式转换为数组,然后用array_push赋值可以避免,如下:
$$s = array();
array_push($$s, $row);

ls的解决方法比较好

下面这样做就可以了,何必那么麻烦:
while ($row = $dsql->GetArray()){
$lawer."[".