CakePHP函数中如何将参数$reg正确插入JSON格式字符串?
解决CakePHP中变量无法插入JSON字符串的问题
你的问题出在单引号包裹的字符串里变量不会被PHP解析,所以$reg被当成了普通文本。下面给两种可行的解决办法:
方法1:改用双引号拼接(需转义内部双引号)
把包含JSON的字符串改成双引号包裹,同时对JSON里的双引号进行转义,这样PHP就能识别并替换$reg变量:
public function param($apikey, $plant_id, $reg){ $http = new Client(); $response = $http->get('https',[ 'apikey'=> $apikey, 'plant_id'=> $plant_id, 'dev_cmd'=>"[{\"mod\":5,\"reg\":$reg}]" ]); }
方法2:先构建数组再转成JSON(推荐)
手动拼接JSON容易出错,更稳妥的方式是先创建PHP数组,再用json_encode()转成标准JSON字符串:
public function param($apikey, $plant_id, $reg){ $http = new Client(); $devCmd = json_encode([ ['mod' => 5, 'reg' => $reg] ]); $response = $http->get('https',[ 'apikey'=> $apikey, 'plant_id'=> $plant_id, 'dev_cmd'=> $devCmd ]); }
这种方式能自动处理引号转义和格式问题,避免手动拼接可能出现的语法错误。
内容的提问来源于stack exchange,提问作者aliciaali
相关产品推荐
相关产品推荐

