Could you explain this? You say "Reading from right to left, the first value which exists and is not null is the value that will be returned.", but then you have this snippet:

echo $a ?? $b ?? 7; // outputs 16

I'd interpret your text as: start with 7. It exists, and is not null, so that value is returned. But it isn't? Should the output be 7, or should the text be "left to right" ?