Which of the following tasks can be achieved by using magic methods? (Choose 3)
A . Initializing or uninitializing object data
B . Creating a new stream wrapper
C . Creating an iterable object
D . Processing access to undefined methods or properties
E . Overloading operators like+,*, etc.
F . Converting objects to string representation
Answer: A, D, F