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&nbsp;para false, a postagem é executada e o resultado é exibido. Então é issoCURLOPT_POST&nbsp;não é necessário? Parece opçãoCURLOPT_POSTFIELDS&nbsp;cuida do envio de dados viaPOSTAR&nbsp;sem uso deCURLOPT_POST&nbsp;opção. Quando imprimo$_SERVER&nbsp;no test2.php, o método request é sempre definido comoPOST&nbsp;(com ou sem opçãoCURLOPT_POST)

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