You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中定义包含变量值的动态变量名?

解决PHP变量名动态拼接的问题

嘿,这个需求完全可行的!你遇到的问题是PHP解析变量名时的优先级问题——直接写$ext_$type_up_let的话,PHP会把$type_up_let当成一个完整的变量名来解析,而不是把$type_up的值插入到中间。

这里有两种常用的正确写法:

方法一:用花括号明确包裹变量部分

把你要插入的变量用花括号包起来,告诉PHP这是一个独立的变量,这样就能正确拼接变量名了:

$type_up = "pics";
$ext_pics_let = "jpg"; // 假设这个变量已经定义

// 正确获取$ext_pics_let的值
$value = ${"ext_{$type_up}_let"};
echo $value; // 输出 "jpg"

方法二:先拼接变量名字符串,再用变量变量

先把目标变量名拼成一个字符串,再通过变量变量的方式访问:

$type_up = "pics";
$ext_pics_let = "png";

// 先拼接变量名字符串
$targetVar = "ext_{$type_up}_let";
// 用$$访问变量变量
$value = $$targetVar;
echo $value; // 输出 "png"

小建议

虽然变量变量能解决问题,但如果你的项目里有很多类似的动态变量场景,更推荐用数组来替代,代码可读性和维护性会更好:

// 用数组存储相关值,结构更清晰
$ext = [
    'pics' => [
        'let' => 'jpg'
    ]
];

$type_up = "pics";
$value = $ext[$type_up]['let'];
echo $value; // 输出 "jpg"

内容的提问来源于stack exchange,提问作者Juan Carlos Mariño Fernández

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:28:43