Memahami Perbezaan Antara $_POST dan $_SERVER['REQUEST_METHOD'] == 'POST'
Penyerahan pembangun kepada Snipplr menghadapi kritikan untuk menggunakan $_SERVER['REQUEST_METHOD'] == 'POST' dan bukannya $_POST. Walaupun pendekatan kaedah permintaan mungkin kelihatan baik secara logik, adalah penting untuk memahami perbezaan antara keduanya.
$_POST mengandungi data yang dipindahkan ke pelayan melalui kaedah permintaan HTTP POST. Data ini boleh diakses melalui tatasusunan $_POST dan boleh digunakan untuk memproses penyerahan borang dan input berasaskan POST yang lain.
Sebaliknya, $_SERVER['REQUEST_METHOD'] menyediakan maklumat tentang kaedah permintaan HTTP yang digunakan oleh klien. Dengan menyemak sama ada kaedah permintaan ialah "POST", anda boleh mengesahkan bahawa permintaan itu dihantar menggunakan kaedah POST. Walau bagaimanapun, syarat ini sahaja tidak menjamin kehadiran data POST dalam tatasusunan $_POST.
Pertimbangkan senario permintaan POST kosong. Dalam kes sedemikian, walaupun permintaan dibuat menggunakan kaedah POST, tiada data disertakan. Menyemak kaedah permintaan (jika ($_SERVER['REQUEST_METHOD'] == 'POST')) akan kembali benar, tetapi pertanyaan $_POST akan menghasilkan tatasusunan kosong.
Akhirnya, pilihan antara menggunakan $_POST dan $_SERVER['REQUEST_METHOD'] == 'POST' bergantung pada tujuan yang dimaksudkan. Jika tumpuan anda adalah semata-mata pada mengesahkan kaedah permintaan, maka $_SERVER['REQUEST_METHOD'] == 'POST' sudah memadai. Walau bagaimanapun, jika anda perlu memproses data POST, adalah penting untuk mengakses terus tatasusunan $_POST.
Atas ialah kandungan terperinci $_POST lwn. $_SERVER['REQUEST_METHOD'] == 'POST': Bila Nak Gunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!