'json' 响应的类型在 PHP 中是布尔值

Type of 'json' response is boolean in PHP

我正在使用以下内容:

<?php
$url = '...';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_CUSTOMREQUEST => "GET"
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

$response = json_decode($response, true);
echo gettype($response); /$response/ THIS RETURNS INTEGER FOR SOME REASON!
?>

所以我得到的 $response 是整数类型,我无法读取这个 JSON 的元素。

另请注意,当我回显响应时,会在其后打印 1。

'$result' 未在您的代码中定义,仔细检查一下? 也许是“$response = json_decode($response, true);”需要改变。 未定义变量的默认值为 NULL/False

检查手册以了解可能的 return values。您至少需要使用 CURLOPT_RETURNTRANSFER.

Returns TRUE on success or FALSE on failure. However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.

<?php
$url = '...';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_RETURNTRANSFER => true  // <<<< add this
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

$response = json_decode($response, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    var_dump(json_last_error_msg());
}