Phương thức __get

Phương thức __get được tự động gọi khi có nỗ lực lấy giá trị của một thuộc tính không tồn tại hoặc không thể truy cập của đối tượng. Phương thức ma thuật này nhận một tham số - tên của thuộc tính được yêu cầu.

Cú pháp

phppublic function __get(string $name) {
  // triển khai
}

Ví dụ

Tạo một lớp có phương thức __get, phương thức này sẽ trả về giá trị cho các thuộc tính không tồn tại:

php<?php
  class User {
    private $data = [
      'name' => 'John',
      'age' => 30
    ];
    
    public function __get($name) {
      if (array_key_exists($name, $this->data)) {
        return $this->data[$name];
      }
      return null;
    }
  }
  
  $user = new User();
  echo $user->name;
?>

Kết quả thực thi mã:

php'John'

Ví dụ

Phương thức __get có thể được sử dụng để triển khai các thuộc tính động:

php<?php
  class DynamicProperties {
    public function __get($name) {
      return "Dynamic value for {$name}";
    }
  }
  
  $obj = new DynamicProperties();
  echo $obj->test;
?>

Kết quả thực thi mã:

php'Dynamic value for test'

Xem thêm

  • phương thức __set,
    được gọi khi thiết lập giá trị cho một thuộc tính không tồn tại
  • phương thức __call,
    được gọi khi gọi một phương thức không tồn tại