PHP变量在函数内回显时有一个值,但在返回后回显时为空
在下面的PHP代码片段中,有一个名为PHP变量在函数内回显时有一个值,但在返回后回显时为空,php,variables,curl,Php,Variables,Curl,在下面的PHP代码片段中,有一个名为sendJsonByGet()的函数。在该函数体中,将创建并填充名为$response的变量。当我在函数中回显此变量时,它会给出以下输出: Response: Test Test Test 然后,正如您在代码段中所看到的,我从函数返回$response变量,返回的值被分配给名为$result的变量,然后该变量被回送出去。但这一次,输出是: Result: 问题是为什么 PHP脚本: $response似乎不是有效的JSON对象字符串,因此$result=
sendJsonByGet()
的函数。在该函数体中,将创建并填充名为$response
的变量。当我在函数中回显此变量时,它会给出以下输出:
Response: Test Test Test
然后,正如您在代码段中所看到的,我从函数返回$response
变量,返回的值被分配给名为$result
的变量,然后该变量被回送出去。但这一次,输出是:
Result:
问题是为什么
PHP脚本:
$response似乎不是有效的JSON对象字符串,因此$result=JSON_decode($response)为空。请注意,您正在操作返回的变量。如果使用
JSON_decode(sendJsonByGet($url,$extractedDataJson),是否有任何更改(true)代码>?你有你的代码吗
$extractedDataArray = array(
"DataFiles/datum.txt3" => "60340039"
);
$extractedDataJson = json_encode($extractedDataArray, JSON_FORCE_OBJECT);
$url = "http://AAA.BBB.CCC.DDD/TestTwo/index.php";
$result = json_decode(sendJsonByGet($url, $extractedDataJson));
echo "Result: $result";
function sendJsonByGet($url="http://AAA.BBB.CCC.DDD/TestTwo/index.php", $extractedDataJson) {
$curlObject = curl_init($url);
curl_setopt($curlObject, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curlObject, CURLOPT_POSTFIELDS, $extractedDataJson);
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $curlObject, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($extractedDataJson) ) );
$response= curl_exec($curlObject);
echo "Response: $response";
if (curl_error($curlObject)) {
echo 'Error:' . curl_error($curlObject);
}
curl_close($curlObject);
return $response;
}