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

PHP中如何拼接两个值以获取对应动态变量的取值?

实现方法

你原本的写法是拼接两个变量的值,但$p本身是未定义的变量,无法得到你要的动态取p+数字对应变量值的效果,可按以下两种方案实现:

方法1:使用可变变量(快速适配你的现有代码)

PHP支持可变变量特性,可以将字符串的内容作为变量名使用,代码修改如下:

$mark = $_SESSION["mark"];  // 此处假设该值为2

$p1 = 10;
$p2 = 20;
$p3 = 30;

$price = ${'p' . $mark}; // 先拼接得到字符串"p2",再将其作为变量名取值,最终得到20

方法2:使用数组存储(更推荐的工程化写法)

可变变量可读性较差、容易出现未定义变量的异常,更建议你把同系列的数值存到数组中,通过下标取值,后续新增数值也只需要更新数组即可:

$mark = $_SESSION["mark"];  // 此处假设该值为2
// 数组下标对应mark的可选取值
$pList = [
    1 => 10,
    2 => 20,
    3 => 30
];
// 取值前加判断避免下标不存在的报错
$price = isset($pList[$mark]) ? $pList[$mark] : 0;

注意:如果使用可变变量方案,也建议加上isset(${'p' . $mark})的判断,避免$mark取值不在预期范围内时抛出未定义变量的警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:15:03