Unless you've won a contest, there's really no way to get an iPhone for free.
The only way to significantly reduce the cost of buying an iPhone is through trade-in offers combined with any device discounts available from certain retailers.
Alternatively, if you've accumulated enough points through a rewards program, you might be able to redeem them for the cost of an iPhone.