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

请问以下PHP示例中$_POST['var1']是如何赋值给$m_value的?

赋值流程解释

整个过程和普通PHP类的参数传递、构造方法执行逻辑完全一致,匿名类只是没有显式类名,类的基础规则没有变化,核心分为3个步骤:

  • 第一步:实例化传参
    执行new class($_POST['var1'])时,括号内的$_POST['var1']会先计算出值为字符串'another_type',这个值会作为参数传入匿名类的构造方法,对应构造方法的第一个入参$input。
  • 第二步:构造方法内做值映射
    构造方法拿到$input的取值'another_type'后,执行switch分支判断,命中case 'another_type'的条件,执行对应分支的逻辑$this->m_value = 3;,完成私有属性$m_value的赋值。
  • 第三步:取值验证
    公有方法getValue()可以访问同一个类内部的私有属性,所以调用$valueObj->getValue()时就会返回之前赋值的3。

注意:这里并不是直接把$_POST['var1']的原始值赋值给$m_value,而是做了一层输入校验和映射转换,只有输入是三个指定的字符串时才会给属性赋值为对应数字,否则直接抛出异常,避免非法输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:03