CURLOPT_POST vs. CURLOPT_POSTFIELDS: ¿Se requiere la opción CURLOPT_POST?

Soy nuevo enrizo en PHP Tengo una pregunta sobre el uso de las opciones de curl.

Considere dos archivos de script: test1.php y test2.php, ambos presentes en la raíz www. Estoy usandoUbuntu 12.04 LTS. La versión de libcurl para PHP es7.22.0.

Contenido de 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);
?>

Contenido de test2.php

<?php 
    var_dump($_POST);
?>

Cuando ejecuto test1.php a través del navegador, puedo ver los resultados publicados. Ahora si elimino la opción de rizo que contieneCURLOPT_POST, el ejemplo aún funciona. Incluso si configuroCURLOPT_POST a falso, se realiza la publicación y se muestra el resultado. Entonces, es esoCURLOPT_POST no se requiere en absoluto? Se ve la opciónCURLOPT_POSTFIELDS se encarga de enviar datos a través deENVIAR sin uso deCURLOPT_POST opción. Cuando imprimo$_SERVER en test2.php, el método de solicitud siempre se establece enPOST (con o sin opciónCURLOPT_POST)

¿Podría alguien decirme el uso exacto deCURLOPT_POST ¿opción? ¿Es necesario para enviar datos a través dePOST?

Respuestas a la pregunta(2)

Su respuesta a la pregunta