Волшебные методы php, вызов get и set?
Мой вопрос в том, скажем, у нас есть класс:
class SomeClass{
private $someProperty;
public function __call($name,$arguments){
echo "Hello World";
}
Теперь, когда я говорю:
$object = new SomeClass();
$object->someMethod();
Будет вызван метод __call в моем классе.
Когда я говорю
$object->getSomeProperty();
Будет ли __вызов снова вызван? Если да, то для чего предназначены магические методы __get и __set?
Когда я говорю
$object->someProperty;
Тогда будет ли вызываться __get($SomeProperty)? или это будет __set ($SomeProperty)?
2 answers
Всякий раз, когда вызывается недоступный метод, будет вызван __call
.
В любое время, когда вы пытаетесь прочитать свойство __get
, будет вызвано, будь то echo $obj->prop;
или $var = $obj->prop;
И, наконец, каждый раз, когда вы пытаетесь записать в свойство, будет вызываться магический метод __set
.
Будет ли __вызов снова вызван?
Да.
Если да, то для чего предназначены магические методы __get и __set?
См. Ниже:
Когда я говорю
$object->someProperty;
Тогда будет ли вызываться __get($SomeProperty)? или это будет __set($SomeProperty)?
__get('someProperty')
потому что это выражение не является присваиванием.