Hướng dẫn can we create static class in php? - chúng ta có thể tạo lớp tĩnh trong php không?

Tôi thường thích viết các lớp không tĩnh thông thường và sử dụng lớp nhà máy để khởi tạo các trường hợp đơn [SUDO Static] của đối tượng.

Theo cách này, hàm tạo và phá hủy hoạt động theo bình thường và tôi có thể tạo thêm các phiên bản không tĩnh nếu tôi muốn [ví dụ: kết nối DB thứ hai]

Tôi sử dụng điều này mọi lúc và đặc biệt hữu ích cho việc tạo trình xử lý phiên lưu trữ DB tùy chỉnh, vì khi trang chấm dứt bộ hủy sẽ đẩy phiên đến cơ sở dữ liệu.

Một lợi thế khác là bạn có thể bỏ qua thứ tự bạn gọi là mọi thứ vì mọi thứ sẽ được thiết lập theo yêu cầu.

class Factory {
    static function &getDB [$construct_params = null]
    {
        static $instance;
        if[ ! is_object[$instance] ]
        {
            include_once["clsDB.php"];
            $instance = new clsDB[$construct_params];   // constructor will be called
        }
        return $instance;
    }
}

Lớp DB ...

class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}

Bất cứ nơi nào bạn muốn sử dụng nó chỉ cần gọi ...

$static_instance = &Factory::getDB[$somekickoff];

Sau đó, chỉ coi tất cả các phương pháp là không tĩnh [vì chúng]

echo $static_instance->getvar[];

class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
09
class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
5
class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
11
class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
7

class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
1
echo $static_instance->getvar[];
3
class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
19
class clsDB {

    $regular_public_variables = "whatever";

    function __construct[$construct_params] {...}
    function __destruct[] {...}

    function getvar[] { return $this->regular_public_variables; }
}
7

Chúng ta có thể tạo lớp tĩnh không?

  • Các lớp học có thể là tĩnh mà hầu hết các nhà phát triển đều biết, từ đó một số lớp có thể được thực hiện tĩnh trong Java. Java hỗ trợ các biến thể hiện tĩnh, phương thức tĩnh, khối tĩnh và các lớp tĩnh. Lớp trong đó lớp lồng nhau được xác định được gọi là lớp bên ngoài.
  • Tại sao tĩnh được sử dụng trong PHP?
  • class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    09
    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    5
    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    11
    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    7

    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    1
    echo $static_instance->getvar[];
    
    3
    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    19
    class clsDB {
    
        $regular_public_variables = "whatever";
    
        function __construct[$construct_params] {...}
        function __destruct[] {...}
    
        function getvar[] { return $this->regular_public_variables; }
    }
    
    7

    Chúng ta có thể tạo lớp tĩnh không?

    Các lớp học có thể là tĩnh mà hầu hết các nhà phát triển đều biết, từ đó một số lớp có thể được thực hiện tĩnh trong Java. Java hỗ trợ các biến thể hiện tĩnh, phương thức tĩnh, khối tĩnh và các lớp tĩnh. Lớp trong đó lớp lồng nhau được xác định được gọi là lớp bên ngoài.Static Classes brings forth a property wherein a class itself holds values that remain the same and aren’t unique. Another property of Static Classes is that we can do the aforementioned without having to create an instance of the class.

    Làm thế nào để tạo một lớp tĩnh? & NBSP; Nó khá đơn giản. Các biến và phương thức được khai báo và xác định trong một lớp sẽ được khai báo là tĩnh với việc sử dụng từ khóa tĩnh, để chúng có thể được sử dụng mà không cần khởi tạo lớp trước. & NBSP; Một điểm quan trọng cần lưu ý ở đây là, vì điều này Có nghĩa là một biến lớp có thể được truy cập mà không cần một trường hợp cụ thể, điều đó cũng có nghĩa là sẽ chỉ có một phiên bản của biến này. Một hậu quả khác là một phương pháp tĩnh không thể truy cập các biến và phương thức không tĩnh vì chúng yêu cầu một thể hiện của lớp. 
    It’s fairly simple. The variables and methods that are declared and defined within a class are to be declared as static with the use of static keyword, so that they can be used without instantiating the class first. 
    An important point to note here is that, since this means a class variable can be accessed without a specific instance, it also means that there will only be one version of this variable. Another consequence is that a static method cannot access non-static variables and methods since these require an instance of the class.

    Để truy cập lớp tĩnh và phương thức của nó, sử dụng cú pháp sau: & nbsp; & nbsp;

     ClassName::MethodName[];

    Ví dụ 1: Mã sau trả về ngày hiện tại mà không cần khởi tạo ngày lớp. Trong trường hợp này, định dạng của ngày chứ không phải ngày thực tế vẫn giữ nguyên. The following code returns the current date without instantiating the class Date. In this case, the format of the date and not the actual date remains the same.

    PHP

    Bài Viết Liên Quan

    Chủ Đề