PHP __get __set methods

class Dog {

    protected $bark = 'woof!';

    public function __get($key) {
        if (isset($this->$key)) {
            return $this->$key;
        }
    }
    public function __set($key, $val) {
        if (isset($this->$key)) {
             $this->$key = $val;
        }
    }
 }

В чем смысл использования этих функций.

, если я могу использовать

$dog = new Dog();
$dog->bark = 'woofy';
echo $dog->bark;

Зачем мне объявлять «лай» как protected ? Действительно ли методы __ get () и __ set () в этом случае делают «лай» общедоступным?

5
задан Michael Berkowski 19 July 2011 в 02:20
поделиться