猿问

在 PHP 中的 json/array 中回显变量

我制作了一个有效的代码,但是当我尝试在 json/array 中回显一个变量时它不起作用。谁能帮忙?


有效的代码


$data = array("ips" => ["ip" => "1.1.1.1"]);                                                                    

$data_string = json_encode($data);  

不起作用的代码


 $test=1.1.1.1

 $data = array("ips" => ["ip" => "$test"]);                                                                    

 $data_string = json_encode($data);  

代码只是在浏览器上返回 500error


如您所见,我正在尝试引入一个变量。谁能帮忙?


冉冉说
浏览 127回答 3
3回答

浮云间

你需要在“1.1.1.1”周围加上引号,否则 php 的解析器不会将它解释为字符串(这是它应该是的)做这个:$test="1.1.1.1";$data = array("ips" => ["ip" => "$test"]);                                                                    $data_string = json_encode($data);  不是这个:$test=1.1.1.1$data = array("ips" => ["ip" => "$test"]);                                                                    $data_string = json_encode($data);  将数组的简写与数组函数混合也是不好的做法,你应该做array("ips" => array("ip" => "$test"));或者["ips" => ["ip" => "$test"]];

MM们

虽然已经给出了正确的答案:You have a syntax error there and should write$ip = "1.1.1.1";我建议您首先查看服务器的 Web 服务器和 PHP 错误日志。它会清楚地说明您的脚本失败的原因:[Sat May 16 13:26:20.744739 2020] [proxy_fcgi:error] [pid 1653:tid 140650782840576] [client ::1:55866] AH01071: Got error 'PHP message: PHP Parse error:  syntax error, unexpected '.1' (T_DNUMBER) in /var/www/html/stackoverflow.php on line 2\n', referer: http://localhost/或者,您可以使用php myScript.php并从控制台运行它并获得相同的错误消息。自然地,PHP-CLI 的可能使用在一定程度上取决于脚本的复杂性。这将有助于您将来更轻松地找到这些错误。

拉莫斯之舞

您在变量中有语法错误$test。您可以使用字符串类型,如下所示:$test = '1.1.1.1';$data = array("ips" => ["ip" => "$test"]);                                                                    $data_string = json_encode($data);  
随时随地看视频慕课网APP
我要回答