I understand how it works but why would we practically use this?
Using __toString() overrides the operator that is called when you print objects of that class, so it makes it easier for you to configure how an object of that class should be displayed.
__toString()