Lớp bất khả xâm phạm php

Bởi vì một lớp có thể được khởi tạo nhiều lần, giá trị của một lớp giống như một thể hiện/đối tượng, không phải là một lớp. Điều này cũng có nghĩa là bạn không thể sử dụng một phương thức trong một biến không bắt đầu một lớp, nhưng nó vẫn có ngoại lệ. Cả method and variable in class to team for is static, have nhac là nườn có bản gốc là một khởi tạo của lớp. Nếu bạn làm điều này, thì một biến có thể được truy cập mà không cần phần thân lớp cụ thể, vì vậy sẽ chỉ có một phiên bản duy nhất của biến này. Vấn đề với phương thức tĩnh là nó sẽ không thể truy cập các biến và phương thức khác vì nó sẽ không thể truy cập lớp

Nội dung chính Hiển thị

  • Các lớp tĩnh trong php
  • Hằng số lớp
  • Từ khóa "cuối cùng"
  • Để giải quyết tên lớp thành dạng đủ điều kiện của nó bằng cách nối thêm ". lớp"
  • Để gọi "__callStatic" với tên phương thức không được khai báo

Trong phần trước, chúng ta đã viết lớp Người dùng. Đôn ta chủ hường Đại nó bội số tĩnh chức năng định khách sạn vật chất

name ." is ".$this->age ." years old";
    }
    
    publicstaticfunction ValidatePassword($password)
    {
        if(strlen($password) >= self::$minimumPasswordLength)
            returntrue;
        elsereturnfalse;
    }
}

$password="test";
if(User::ValidatePassword($password))
    echo"Password is valid!";
elseecho"Password is NOT valid!";
?> 

Hãy thêm một biến tĩnh vào lớp, $minimumPasswordLength được đặt thành 6, sau đó hãy có một hàm tĩnh để kiểm tra khi nào mật khẩu đã sẵn sàng.

Như bạn đã biết, để truy cập một hàm tĩnh từ một phương thức tĩnh, chúng ta thêm một từ khóa vào trước nó. Vì nó được điền dữ liệu trong lớp, do đó, để gọi hàm ValidatePassword() từ bên trong lớp, người ta đặt tên cho lớp đó. Bạn cũng sẽ nhận ra rằng việc truy cập các thành viên tĩnh yêu cầu toán tử -> toán tử hai dấu hai chấm, nhưng nó không khác lắm.

Hằng số lớp

Constant is être variable not at change. Khi bạn là đội liên tục, bạn cho nó là bạn và bạn và hành động không bảo vệ thay bài. Thông thường, các biến khác dễ sử dụng hơn, nhưng đôi khi chúng cần phải là hằng số, chẳng hạn như để nhắc nhở lập trình viên (có người có người khác) nên biến đó không hoạt động.

Hằng lớp cũng tương tự như một hằng bình thường, vì vậy nó được gọi trong một lớp vì nó chỉ được truy cập bởi một lớp. Giống như một thành viên tĩnh, bạn sử dụng toán tử hai dấu hai chấm để nhập một lớp không đổi. Ví dụ

Như bạn đã biết, do đến đến biến đội, đến độ là không có công cụ sửa đổi truy cập – đến đến đến được cười. Để sử dụng một hằng, chúng ta cần viết tên của lớp, sử dụng toán tử dấu hai chấm để viết tên của hằng

Từ khóa "cuối cùng"

Trong các hàm này gây hại cách kế thừa từ lớp này sang lớp kia, hãy viết lại một hàm đã được kế thừa từ lớp khác. Nhưng nếu bạn không muốn kế thừa lớp khác, bạn không muốn kế thừa chức năng được kế thừa. Nếu vậy, bạn có thể sử dụng từ khóa 'cuối cùng' và PHP sẽ thất bại nếu đó là lớp cuối cùng hoặc chức năng cuối cùng.

Lớp cuối cùng sẽ tương tự như thế này

finalclass Animal
{
    public$name;
}

Và một lớp có chức năng cuối cùng sẽ trông như thế này

class Animal

class Animal
{
    finalpublicfunction Greet()
    {
        return"The final word!";    
    }
}

Bản có đuôi của hai máy sứ động Đồng lấy ví dụ trên

Dịch từ Hướng dẫn PHP5

Để bổ sung các câu trả lời liên quan đến việc PHP sử dụng hai dấu hai chấm làm "toán tử phân giải phạm vi"

Ngoài ra, dấu hai chấm được sử dụng

  1. Để giải quyết một tên lớp không đủ tiêu chuẩn, đủ điều kiện hoặc bí danh thành dạng đủ điều kiện của nó và

  2. Để gọi phương thức "__callStatic" của một lớp với một tên phương thức tùy ý, chưa được khai báo trước đó

Để giải quyết tên lớp thành dạng đủ điều kiện của nó bằng cách nối thêm ". lớp"

Hai dấu hai chấm theo sau từ khóa "lớp", được đặt sau tên của một lớp, cung cấp tên đủ điều kiện của lớp đó dưới dạng một chuỗi. Tôi. e. , "Tên lớp. class" phân giải thành tên đủ điều kiện của "ClassName". Nhìn thấy. (Hướng dẫn sử dụng. Lớp học và đối tượng. Khái niệm cơ bản, (B) Hướng dẫn sử dụng. Lớp học và đối tượng. Hằng số lớp và (C) Hướng dẫn sử dụng. Ngôn ngữ tham khảo. hằng số

Cú pháp đã được thông qua trong PHP 5. 5. Nhìn thấy. (A) RFC và (B) PHP 5. 5 tính năng mới

Các ". class" rất hữu ích trong một không gian tên để có được tên đủ điều kiện của một lớp từ dạng không đủ tiêu chuẩn hoặc đủ điều kiện của nó hoặc từ một bí danh của tên của nó

Các ". class" dường như hoạt động để giải quyết tên giao diện cũng như tên lớp, mặc dù điều đó dường như không được ghi lại bởi các nguồn được liên kết ở trên

Trong một lớp, cú pháp cũng hoạt động với "self. lớp", như được đề cập bởi ". class" RFC được liên kết ở trên

Một vài ví dụ

<?php

namespace MyNamespace;

use MyNamespace\YourInterface as HerInterface;    
use MyNamespace\YourClass as HerClass;
use MyNamespace\TheirClass as OurClass;

interface MyInterface { }

interface YourInterface { }

class MyClass { }

class YourClass { }

class TheirClass
{
    public function fullName()
    {
        echo self::class;
    }
}

$ourClassInstance = new OurClass;

echo MyClass::class, PHP_EOL;
// outputs: MyNamespace\MyClass

echo HerClass::class, PHP_EOL;
// outputs: MyNamespace\YourClass

echo MyInterface::class, PHP_EOL;
// outputs: MyNamespace\MyInterface

echo HerInterface::class, PHP_EOL;
// outputs: MyNamespace\YourInterface

echo $ourClassInstance->fullName(), PHP_EOL;
// outputs: MyNamespace\TheirClass

Để gọi "__callStatic" với tên phương thức không được khai báo

Hai dấu hai chấm có thể được sử dụng để "gọi" một tên phương thức tĩnh mà một lớp chưa khai báo. e. g. , "Tên lớp. tùy ýMethodName()". Làm như vậy sẽ gọi phương thức "__callStatic" của lớp, nếu lớp đã khai báo một. Nó cũng chuyển tới __callStatic tên của phương thức không được khai báo và bất kỳ đối số nào được chuyển cho phương thức không được khai báo. Phương thức __callStatic sau đó có thể "tự động" chọn cách xử lý cuộc gọi. PHP gọi điều này là "quá tải" với "phương thức ma thuật" __callStatic