Hằng số ma thuật nào sau đây của php trả về tên phương thức lớp?

Có 9 'Hằng số ma thuật' mà các nhà phát triển có thể sử dụng trong PHP. Không giống như 'Hằng số được xác định trước' của PHP, 'Hằng số ma thuật' được đặt tên mơ hồ là 'hằng số' thay đổi dựa trên vị trí chúng được sử dụng trong tập lệnh của bạn. Một số trong số này hữu ích hơn những cái khác và tôi tưởng tượng rằng bạn sẽ thấy và sử dụng '__FILE__' và '__DIR__' một cách thường xuyên

Hằng số ma thuật có thể hữu ích cho nhiều thứ, từ gỡ lỗi đến quản lý tệp. Dưới đây là một số ví dụ đơn giản cho thấy cách sử dụng từng 'Magic Constant'

Ghi chú. Tất cả các 'Hằng số ma thuật' này được giải quyết tại thời điểm biên dịch thay vì thời gian chạy

__ĐƯỜNG KẺ__

Hằng số này trả về số dòng hiện được thực thi trong tập lệnh của bạn

1. 
echo __FILE__; // Result = "/full/path/of/this/file.php"
1

PHP cung cấp một tập hợp các hằng số được xác định trước đặc biệt và các phương thức ma thuật cho các chương trình của bạn. Không giống như các hằng số bạn sẽ đặt bằng cách sử dụng

0, giá trị của các hằng số phụ thuộc vào vị trí chúng được sử dụng trong mã của bạn và được sử dụng để truy cập thông tin chỉ đọc về mã của bạn và PHP. Các phương thức ma thuật là các tên phương thức dành riêng mà bạn có thể sử dụng trong các lớp của mình để nối vào chức năng PHP đặc biệt

Nếu bạn chưa từng nghe về các hằng số và phương thức kỳ diệu của PHP, thì bài viết này là dành cho bạn. Tôi sẽ xem xét một số cách hữu ích hơn và cách bạn có thể sử dụng chúng trong mã của mình

Hằng số được xác định trước

Các hằng số được xác định trước được sử dụng để truy cập thông tin về mã của bạn. Các hằng số ở đây được viết bằng tất cả các chữ in hoa giữa hai dấu gạch dưới, như

1 và
2 chẳng hạn. Dưới đây là một số hằng số hữu ích được cung cấp bởi PHP

  • 1 trả về số dòng trong tệp nguồn mà hằng số xuất hiện tại đó, như thế này
  • 2 đại diện cho tên tệp của bạn, bao gồm đường dẫn đầy đủ của nó, như thế này
  • 5 chỉ đại diện cho đường dẫn đến tệp
  • 6 trả về tên của lớp hiện tại
  • 7 trả về tên của hàm hiện tại
  • 8 đại diện cho tên của phương thức hiện tại
  • 9 trả về tên của không gian tên hiện tại
  • phương pháp ma thuật

    Các phương thức ma thuật cung cấp các móc nối vào hành vi PHP đặc biệt. Không giống như các hằng trước đó, tên của chúng được viết bằng chữ thường/chữ lạc đà với hai dấu gạch dưới ở đầu, như

    0 và
    1

    0 là phương thức kỳ diệu mà PHP gọi để tạo các thể hiện đối tượng của lớp của bạn. Nó có thể chấp nhận bất kỳ số lượng đối số nào

    Đúng như tên gọi của nó, phương thức

    1 được gọi khi đối tượng bị hủy bởi trình thu gom rác của PHP. Nó không chấp nhận đối số và nó thường được sử dụng để thực hiện bất kỳ thao tác dọn dẹp nào có thể cần thiết, chẳng hạn như đóng kết nối cơ sở dữ liệu

    Các phương thức ma thuật tiếp theo của chúng tôi xử lý quá tải thuộc tính và cung cấp một cách để PHP xử lý các cuộc gọi đến các thuộc tính và phương thức chưa được xác định (hoặc chúng tôi không thể truy cập được)

    PHP gọi phương thức

    4 nếu một thuộc tính không được xác định (hoặc không thể truy cập được) và được gọi trong ngữ cảnh getter. Phương thức chấp nhận một đối số, tên của thuộc tính. Nó sẽ trả về một giá trị được coi là giá trị của thuộc tính

    Phương thức

    5 được gọi cho các thuộc tính không xác định trong ngữ cảnh setter. Nó chấp nhận hai đối số, tên thuộc tính và giá trị

    myAarray[$prop] = $value;
        }
        public function __get($prop) {
            return $this->myArray[$prop];
        }
        public function __isset($prop) {
            return isset($this->myArray[$prop]);
        }
        public function __unset($prop) {
            unset($this->myArray[$prop]);
        }
        public function __toString() {
            return __CLASS__ . ":" . $this->name;
        }
    }
    $obj = new MySample();
    if (!isset($obj->name)) {
        $obj->name = "Alireza";
    }
    echo $obj->name; // Alireza
    echo $obj; // MySample:Alireza

    Trong mã ví dụ trên, thuộc tính

    6 không được định nghĩa trong lớp. Tôi cố gắng gán giá trị “mysample” cho nó và PHP gọi phương thức ma thuật
    5. Nó nhận “name” là đối số
    8 và “Alireza” là
    9, và tôi lưu trữ giá trị trong mảng
    0 riêng tư. Phương pháp
    4 hoạt động theo cách tương tự;

    Có các phương thức ma thuật khác giúp chúng tôi truy xuất và kiểm tra các biến thành viên không thể truy cập cũng xuất hiện trong mã mẫu.

    5,
    6 và
    7. Cả
    5 và
    6 đều được kích hoạt bởi các hàm có cùng tên (không có dấu gạch dưới) trong PHP

    5 kiểm tra xem thuộc tính có được đặt hay không và chấp nhận một đối số là thuộc tính mà chúng tôi muốn kiểm tra.
    6nhận một đối số là tên của thuộc tính mà chương trình muốn hủy đặt

    Trong nhiều trường hợp, việc biểu diễn một đối tượng dưới dạng chuỗi rất hữu ích, chẳng hạn như để xuất cho người dùng hoặc quy trình khác. Thông thường PHP hiển thị chúng dưới dạng ID trong bộ nhớ, điều này không tốt cho chúng tôi. Phương thức

    7 giúp chúng ta biểu diễn đối tượng dưới dạng chuỗi. Phương thức này được kích hoạt trong bất kỳ tình huống nào mà đối tượng được sử dụng dưới dạng chuỗi, ví dụ:.
    3. Nó cũng có thể được gọi trực tiếp giống như bất kỳ phương thức công khai thông thường nào khác, tốt hơn là sử dụng các phương thức hack như nối thêm một chuỗi rỗng để bắt buộc

    Bản tóm tắt

    Lập trình OOP có thể tạo ra mã dễ kiểm tra và bảo trì hơn. Nó giúp chúng ta tạo code PHP chuẩn và tốt hơn. Ngoài ra, nó có thể tận dụng các phương thức và hằng số kỳ diệu mà PHP cung cấp

    Hình ảnh qua Stepan Kapl / Shutterstock

    Chia sẻ bài viết này

    Hằng số ma thuật nào sau đây của php trả về tên phương thức lớp?

    Alireza Rahmani Khalili

    Đối với người mà nó có thể quan tâm, tôi là Alireza. Trong phần lớn thời gian thức của mình, tôi là chuyên gia PHP, Tác giả, Diễn giả và nhà tư vấn độc lập về thiết kế các ứng dụng web doanh nghiệp với bằng Thạc sĩ Khoa học Máy tính. TÔI