PHP is always returning the same IP
HTTP_X_FORWARDED_FOR are both HTTP headers that are non-standard and have to be set by a proxy server. If your hosting company has a proxy sitting in front of your PHP application, they need to enable these headers for this to work.
Furthermore, you should only ever read either of these headers for the IP if you are absolutely sure that your hosting provider uses them. If you don't know sure, this could be a security issue.
So in short, whether either of those headers work is entirely dependent on your hoster, and you should use neither of these headers until you find out if your hoster supports them.