如何为PHP类添加属性?及代码中$action+100返回null问题排查
PHP类添加属性时计算值返回null的问题排查与解决
我想给PHP的StdClass类添加属性,写出了以下代码:
$action = $_POST['action']; switch($action) { case 0: $ss_echo = new StdClass(); $ss_echo->action = $action + 100; // 这里返回null? $ss_echo->success = 0; // 这里返回0 echo(json_encode($ss_echo)); break; }
运行后发现$action + 100的输出结果是null,请问问题出在哪里?
解决办法
通过将$action转为整数后再进行计算,问题得到解决,修正后的代码如下:
$ss_echo = new StdClass(); $ss_echo->action = intval($action) + 100;
原因分析
$_POST['action']获取到的是字符串类型的数据,直接与数字100相加时,如果该字符串无法被PHP自动解析为有效数字,就会导致计算结果异常(比如返回null)。使用intval()函数将字符串强制转换为整数类型后,就能正常进行数值运算了。
内容的提问来源于stack exchange,提问作者user19816087
相关产品推荐
相关产品推荐

