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

PHP变量$totalPrice无法正确赋值数组元素问题求助

问题分析与解决

这问题很典型——你搞反了变量定义的顺序!

看你的代码执行流程:

  1. 初始化$totalPrice = 0
  2. 设置$site = "UM"
  3. 尝试把$sites[$site][0]赋值给$totalPrice
  4. 这时候$sites数组还没被定义呢!
  5. 之后才创建$sites数组
  6. 最后echo$totalPrice

PHP里,当你访问一个未定义的数组时,会产生Notice: Undefined variable: sites的警告(如果错误级别开得够高的话),而$sites[$site][0]此时的值是null,把null赋值给$totalPrice后,echo的时候PHP会自动把null转换成0输出,所以你看到的始终是0。

而你直接echo$sites[$site][0]能正常显示,那肯定是你在echo的时候$sites数组已经被定义了,和这段代码的执行顺序不一样。

修正后的代码

只需要把$sites数组的定义放到赋值语句之前就行:

$sites = array (
    "US" => array (38.78, 11, 5.5),
    "UM" => array (44.55, 11, 5.5),
    "PS" => array (55.28, 11, 5.5),
    "PM" => array (66.55, 11, 5.5)
);
$totalPrice = 0;
$site = "UM";
$totalPrice = $sites[$site][0];
echo $totalPrice; // 现在会输出44.55

另外,建议你开启PHP的错误提示,这类变量未定义的问题会直接显示出来,方便快速排查。可以在代码开头加上:

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:03:56