CURLOPT_POST vs. CURLOPT_POSTFIELDS: É necessária a opção CURLOPT_POST?

eu sou novoondulação em PHP. Tenho uma pergunta sobre o uso das opções de ondulação.

Considere dois arquivos de script: test1.php e test2.php, ambos presentes na raiz www. estou a usarUbuntu 12.04 LTS. A versão libcurl para PHP é7.22.0.

Conteúdo do test1.php

<?php
    $ch = curl_init();
    $post_data = array(
        'firstname' => 'John',
        'lastname' => 'Doe'
    );
    curl_setopt($ch, CURLOPT_URL, 'localhost/test2.php');
    curl_setopt($ch, CURLOPT_POST, TRUE);   //is it optional?
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    curl_exec($ch);
    curl_close($ch);
?>

Conteúdo do test2.php

<?php 
    var_dump($_POST);
?>

Quando executo o test1.php via navegador, posso ver os resultados publicados. Agora, se eu remover a opção de ondulação que contémCURLOPT_POST, o exemplo ainda funciona. Mesmo se eu definirCURLOPT_POST para false, a postagem é executada e o resultado é exibido. Então é issoCURLOPT_POST não é necessário? Parece opçãoCURLOPT_POSTFIELDS cuida do envio de dados viaPOSTAR sem uso deCURLOPT_POST opção. Quando imprimo$_SERVER no test2.php, o método request é sempre definido comoPOST (com ou sem opçãoCURLOPT_POST)

Alguém poderia me informar o uso exato deCURLOPT_POST opção? É necessário o envio de dados por meio dePOST?

questionAnswers(2)

yourAnswerToTheQuestion