Phương thức __isset

Phương thức __isset là một phương thức ma thuật trong PHP và được gọi khi cố gắng kiểm tra sự tồn tại của thuộc tính đối tượng bằng các hàm isset hoặc empty, khi thuộc tính đó không thể truy cập hoặc không tồn tại. Phương thức nhận một tham số - tên thuộc tính cần kiểm tra.

Cú pháp

phppublic function __isset(string $name): bool

Ví dụ

Tạo một lớp với phương thức ma thuật __isset:

php<?php
class User {
  private $data = [
    'name' => 'John',
    'age' => 30
  ];
  
  public function __isset($name) {
    return isset($this->data[$name]);
  }
}

$user = new User();
var_dump(isset($user->name));
var_dump(isset($user->email));
?>

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

phptrue
false

Ví dụ

Sử dụng với các thuộc tính động:

php<?php
class DynamicProperties {
  private $storage = [];
  
  public function __isset($name) {
    return array_key_exists($name, $this->storage);
  }
  
  public function __set($name, $value) {
    $this->storage[$name] = $value;
  }
}

$obj = new DynamicProperties();
$obj->test = 'value';
var_dump(isset($obj->test));
var_dump(isset($obj->unknown));
?>

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

phptrue
false

Xem thêm

  • phương thức __get,
    được gọi khi đọc các thuộc tính không thể truy cập
  • phương thức __set,
    được gọi khi ghi vào các thuộc tính không thể truy cập
  • phương thức __unset,
    được gọi khi xóa các thuộc tính không thể truy cập