Computer >> Máy Tính >  >> Lập trình >> PHP

Lớp học PHP WeakReference

Giới thiệu

Với các tham chiếu yếu, có thể giữ lại một tham chiếu đến một đối tượng mà không ngăn đối tượng bị phá hủy. Việc triển khai các cấu trúc giống như bộ nhớ cache có thể được thực hiện bằng Tham chiếu yếu.

Tham chiếu yếu tương tự như tham chiếu bình thường, ngoại trừ việc nó không ngăn bộ thu gom rác thu thập đối tượng. Nếu các tham chiếu mạnh đến đối tượng đó không được tìm thấy, nó sẽ bị xóa ngay lập tức khỏi bộ nhớ. Bằng cách này, có thể triển khai hầu hết các lợi ích của bộ nhớ đệm mà không có vấn đề về bộ nhớ.

WeakReference đã được giới thiệu trong PHP 7.4. Trước phiên bản này, hiệu ứng tương tự đã từng được yếuref thu được sự mở rộng. Lớp WeakReference có cấu trúc sau

Cú pháp

WeakReference {
   /* Methods */
   public __construct ( void )
   public static create ( object $referent ) : WeakReference
   public get ( void ) : ?object
}

Phương pháp

public WeakReference ::__ construct (void) - không cho phép khởi tạo lớp WeakReference. Nó có thể được khởi tạo bằng phương thức gốc WeakReference ::create ().

public static WeakReference ::create (object $ reference):WeakReference - Tạo một WeakReference mới.

public WeakReference ::get (void):? object - Nhận một đối tượng được tham chiếu yếu. Nếu đối tượng đã bị phá hủy, NULL được trả về.

Ví dụ về trình tạo

Ví dụ sau có đối tượng của myclass. WeakReference đối tượng của nó hiển thị một tham chiếu. Đối tượng sau đó không được đặt. Bây giờ WeakReference trả về NULL

Ví dụ

<?php
class myclass{
   function Hello(){
      echo "Hello";
   }
}
$obj = new myclass();
$ref = WeakReference::create($obj);
var_dump($ref->get());
unset($obj);
var_dump($ref->get());
?>

Đầu ra

Chương trình trên hiển thị kết quả sau

object(myclass)#1 (0) {
}
NULL