For GET and POST methods, I am getting the values of all three variable/functions ie. $SERVER['REQUESTMETHOD'], $REQUEST and getallheaders(), but in case of PUT and DELETE methods I am only getting value of $SERVER['REQUEST_METHOD'] i.e PUT or DELETE and just the data in the getallheaders(), but nothing in the $_REQUEST variable.

The in PHP, the data for incoming PUT and DELETE requests is available via the php://input stream. You can get the contents of the stream using file_get_contents("php://input") but the data is returned as a query string, so you'll probably want to parse that out into separate variables:

HEAD requests are indentical GET requests except that they don't return any response body. I've run a simple test on my machine and query string variables are available to PHP in the $_GET array as normal. How are you making the request?