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

PHP中如何将变量的结果作为另一个变量的名称?

解决PHP变量变量的使用问题

我懂你的需求——就是想把$field['name'](如果不存在就用$field['id'])的结果,作为新变量的名称,对吧?变量变量其实完全能实现这个需求,大概率是你之前的写法没到位,我给你一步步讲清楚:

第一步:先获取目标变量名

先把你要用来当变量名的字符串存好,这样后续代码更清晰:

// 先拿到最终要作为变量名的字符串
$target_var_name = isset($field['name']) ? $field['name'] : $field['id'];

第二步:创建变量变量

有两种常用写法,都能达到目的:

  1. 双美元符号写法:
// 现在$$target_var_name就等价于$[target_var_name的值],比如如果target_var_name是'value_name',那就是$value_name
$$target_var_name = "你要赋给这个变量的内容";
  1. 花括号包裹写法(可读性更强,尤其适合复杂表达式):
// 和上面效果完全一样,只是写法更明确
${$target_var_name} = "你要赋给这个变量的内容";

如果不想用临时变量,也可以直接把表达式塞进花括号里一步到位:

${ isset($field['name']) ? $field['name'] : $field['id'] } = "你的变量值";

注意事项

  • 要确保$field['name']或$field['id']的结果符合PHP变量命名规则:必须以字母或下划线开头,只能包含字母、数字、下划线。如果结果是数字开头或者有特殊字符,会直接报错。
  • 如果是在函数内部创建变量,默认是局部变量;如果要创建全局变量,可以用$GLOBALS数组:
$target_var_name = isset($field['name']) ? $field['name'] : $field['id'];
$GLOBALS[$target_var_name] = "全局范围内可用的变量值";

内容的提问来源于stack exchange,提问作者Mitos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:33:08