Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP变量在函数内回显时有一个值,但在返回后回显时为空_Php_Variables_Curl - Fatal编程技术网

PHP变量在函数内回显时有一个值,但在返回后回显时为空

PHP变量在函数内回显时有一个值,但在返回后回显时为空,php,variables,curl,Php,Variables,Curl,在下面的PHP代码片段中,有一个名为sendJsonByGet()的函数。在该函数体中,将创建并填充名为$response的变量。当我在函数中回显此变量时,它会给出以下输出: Response: Test Test Test 然后,正如您在代码段中所看到的,我从函数返回$response变量,返回的值被分配给名为$result的变量,然后该变量被回送出去。但这一次,输出是: Result: 问题是为什么 PHP脚本: $response似乎不是有效的JSON对象字符串,因此$result=

在下面的PHP代码片段中,有一个名为
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;

}