PHP __ get ve özel sınıf değişkenleri

2 Cevap php

Bir özel değişken {ile foo devralan bir soyut temel sınıf foo __get() tanımlanmış olan ve bir çocuğun sınıf bar var varsayarsak sınıfın dışından özel $var erişmeye çalışırken [(4)]}, ebeveyn __get() olarak adlandırılan olacak?

2 Cevap

Evet.

<?php
    abstract class foo
    {
        public function __get($var)
        {
            echo "Parent (Foo) __get() called for $var\n";
        }
    }

   class bar extends foo
   {
        private $var;
        public function __construct()
        {
            $this->var = "25\n";
        }

        public function getVar()
        {
            return $this->var;
        }
    }

    $obj = new bar();
    echo $obj->var;
    echo $obj->getVar();
?>

çıktı:

$ Php test.php

Veli (Foo) __ () var çağrısında almak

25

Evet. Bir veri üyesi olduğu mevcut yürütme görünmez erişildiğinde __get() ve __set() (ve __call() bu konuda) çağrılır.

Bu durumda, $var bunu açıkça erişmesini __get() kanca çağıracağı, özel.