关于php的动态变量

nocturne1210 2009-08-13 06:49:37
我要定义一个二维数组,变量名是动态产生的,

$variable=$value;//生成变量名

$$variable=$word->getRegister($str);//得到的 $$variable 是一个n行2列的二维数组

比如输出的值是:
$variable="name"
$name[0][0]="field1"
$name[0][1]="<w:t>description=abcd</w:t>";//写到word文档里的

现在 ${$variable}[0][0] 可以写到word文档里,但轮到 ${$variable}[0][1] 就会报错,说有非法字符,不能生成word文档。但是如果我直接用$name[0][1]就可以,可是因为我的变量名是动态生成的,程序肯定不能这样写。

请问问题出来哪?鞠躬,谢谢



...全文
153 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sauce1210 2009-08-18
  • 打赏
  • 举报
回复
echo " <w:t><![CDATA[".${$variable}[0][1]."]]></w:t>";
让解析器忽略掉之间的文本。
nocturne1210 2009-08-18
  • 打赏
  • 举报
回复
谢谢ls的。
nocturne1210 2009-08-14
  • 打赏
  • 举报
回复
你给的这个链接的内容,不是我要的。

我大概知道问题所在,但我不知道怎么解决。好像是因为我<w:t> </w:t>里面含有变量。。。。。
nocturne1210 2009-08-14
  • 打赏
  • 举报
回复
我现在遇到的问题是

如果我这样写,
$$variable[0][1]="description(0x)";
这样就可以通过 echo "<w:t>".$$variable[0][1]."</w:t>"; 写到word文档里。

但如果我这样写,
$str="description(0x)";
$$variable[0][1]=$str;
这样就可以通过 echo "<w:t>".$$variable[0][1]."</w:t>";就说我有非法字符

怎么回事啊?
nocturne1210 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuzhenyudayu 的回复:]
$ + "name" == $name ???
你是这么认为的?这样行不通的。
不明白你要干什么。为什么要动态获得变量名呢?
你的目的是得到数组和数组里的数据吧?干嘛要跟变量较劲?自定义变量名无法实现嘛?
[/Quote]
不是$ + "name" , 是$ $ name,
取动态变量,是因为每次需要的数组个数是不定的没办法实现定义,只好动态定义了。
cxd19880708 2009-08-14
  • 打赏
  • 举报
回复
你要动态变量名就得用foreach把其分离出来
一个一个的对应上就行了
CunningBoy 2009-08-14
  • 打赏
  • 举报
回复
addcslashes($name[0][1]);
liuzhenyudayu 2009-08-14
  • 打赏
  • 举报
回复
$ + "name" == $name ???
你是这么认为的?这样行不通的。
不明白你要干什么。为什么要动态获得变量名呢?
你的目的是得到数组和数组里的数据吧?干嘛要跟变量较劲?自定义变量名无法实现嘛?
江南昆虫 2009-08-14
  • 打赏
  • 举报
回复
getRegister中需要对内容中某些字符转义?
fenyao 2009-08-13
  • 打赏
  • 举报
回复
http://www.phpe.net/articles/80.shtml

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧