Many answers here in Stack Overflow use fopen($file, "rw+"), but the manual doesn't list the "rw+" mode, there's only the "r+" mode (or "w+" mode).
So I was wondering, what does the "rw+" mode do? What's the difference between fopen($file, "rw+" or "r+"? I'm asking this because there is no documentation on the "rw+" mode.
One approach is to consider that the modes are additive, but I couldn't find any mention of combining modes in the fopen manual page (besides, what's the sense of combining "r" with "w+", if "w+" already makes it readable?). But most importantly, w+ mode truncates the file, while rw+ does not truncate it (therefore, they cannot be additive). Probably there is no rw+ mode, despite its use by Stack Overflow users. Maybe it works because the parser ignores the "w" letter, as the rw+ mode appears to be === r+?
To clarify my question: what is the "rw+" mode, that is, how does it differ from other modes? I only received two answers in the comments: either that I should check the documentation (I already checked and rechecked) and a wrong answer, which said it is equal to "w+" (it isn't). "w+" truncates the file, while "rw+" doesn't.
Here's a script for testing (it proves that w+ truncates the file, but rw+ doesn't):
<?php
$file = "somefile";
$fileOpened = fopen($file, "w");
fwrite($fileOpened, "0000000000000000000");
fclose($fileOpened);
$fileOpened = fopen($file, "rw+");
fwrite($fileOpened, "data");
fclose($fileOpened);
$fileOpened = fopen($file, "r");
$output = fgets($fileOpened);
echo "First, with 'rw+' mode:<br>".$output;
$fileOpened = fopen($file, "w+");
fwrite($fileOpened, "data");
fclose($fileOpened);
$fileOpened = fopen($file, "r");
$output = fgets($fileOpened);
echo "<br><br><br>Now with only 'w+' mode:<br>".$output;
?>