PHP中如何通过变量拼接字符串生成可变变量名?
如何在PHP中创建带字符串拼接的可变变量
嘿,你已经摸到可变变量的门道了,只需要调整一下写法就能实现拼接字符串的需求!直接用$$foo的话确实没法直接拼接,因为PHP的解析顺序会先处理$$foo,再去拼接后面的字符串,这就不是我们想要的完整变量名了。这里有两种简单的实现方式:
方法一:先拼接好目标变量名(更直观)
先把$foo的值和"123"拼接成完整的变量名字符串,再用可变变量赋值:
$foo = "bar"; // 组合出最终的变量名 "bar123" $targetVar = $foo . "123"; // 给$bar123赋值 $$targetVar = "abc123"; // 测试一下,会输出 "abc123" echo $bar123;
方法二:用花括号明确变量边界(更简洁)
PHP支持用花括号{}来明确可变变量的完整范围,这样可以直接在里面完成拼接,不需要临时变量:
$foo = "bar"; // 花括号里的$foo."123"会被解析成"bar123",直接创建$bar123并赋值 ${$foo . "123"} = "abc123"; // 同样能得到正确结果 echo $bar123;
简单说,核心就是先让PHP知道你要的完整变量名是什么,要么提前拼好存起来,要么用花括号把完整的变量名表达式包裹住,避免解析顺序出错。
内容的提问来源于stack exchange,提问作者David Wheatley
相关产品推荐
相关产品推荐

