设置为空 CURLOPT_POSTFIELDS

Setting empty CURLOPT_POSTFIELDS

我正在尝试使用通用库函数通过 curl 发送 GET 和 POST 请求。

function myCurl($url, $postData = null) 
{
    // Sets some default curl options here
    $options = array(
        ...
        CURLOPT_POSTFIELDS => $postData,
        ...
    );

    $ch = curl_init();
    // this works and sends GET
    // unset($options[CURLOPT_POSTFIELDS]); 

    curl_setopt_array($ch, $options);

    curl_exec($ch);
    curl_close($ch);
}

如果设置了 $postData,我希望此函数发送 POST,否则将其视为 GET。但是,即使我将 CURL_POSTFIELDS 设置为 null,这也会发送 POST。取消设置 CURL_POSTFIELDS 选项数组元素有效并发送 GET。但是,有没有办法保留 CURL_POSTFIELDS curl 选项并将其设置为默认空值并使其发送 GET 请求?

$options = array(
    ...
);
if(!empty($postData)){
    $options[CURLOPT_POSTFIELDS]=$postData;
}

或者,以下方法应该可行,但在我看来是愚蠢的:

$options = array(
    ...
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPGET => empty($postData)
    ...
);