Magic Methods php, __call __get and __set?

call, get, magic-methods, php, set

Solution

Anytime an inaccessible method is invoked `__call` will be called.

Anytime you try to read a property `__get` will be called, whether it's `echo $obj->prop;` or `$var = $obj->prop;`

And lastly, anytime you try to write to a property the `__set` magic method will be called.

Problem

my question is, say we have a class: ``` class SomeClass{ private $someProperty; public function __call($name,$arguments){ echo "Hello World"; } ``` Now when I say: ``` $object = new SomeClass(); $object->someMethod(); ``` the __call method in my class will be called. When I say ``` $object->getSomeProperty(); ``` will __call again be called? If so, what is __get and __set magic methods are for? When I say ``` $object->someProperty; ``` then will __get($someProperty) be called? or will it be __set($someProperty) ?

Original source

Related problems