PHP中如何通过拼接变量名获取对应变量值?代码问题求助
解决PHP可变变量取值问题
兄弟,太懂你这种卡在简单问题上熬到深夜的崩溃感了,连续20小时没休息真的顶不住!先给你解决问题,再唠唠为啥原来的写法不行。
你的代码现在只是把字符串拼接成了"$this2",但PHP并没有把这个字符串当作变量名去读取它的值,所以直接输出了字符串本身。要实现你要的效果,得用PHP的可变变量特性,有两种常用写法:
方法一:用大括号包裹解析变量名
直接在大括号里拼接变量名,PHP会自动解析出对应的变量:
<?php $this2="squirrel"; $i=2; $trythis = ${"this$i"}; // 解析为$this2 echo $trythis; // 输出squirrel ?>
方法二:先拼接变量名字符串,再用可变变量
先把要访问的变量名存成一个字符串,再用$$来读取对应变量的值:
<?php $this2="squirrel"; $i=2; $varName = "this" . $i; // 得到字符串"this2" $trythis = $$varName; // 等价于$this2 echo $trythis; ?>
为啥原来的写法不行?
你原来的代码$trythis = "$" . "this$i";其实是把$和"this2"拼接成了字符串"$this2",这只是一段文本,PHP不会把它当作变量去解析取值,所以输出的就是这段文本内容。
赶紧把代码改了去休息吧,熬太久对身体不好!
内容的提问来源于stack exchange,提问作者analog56x
相关产品推荐
相关产品推荐

