7 magic method trong lập trình PHP có thể bạn chưa biết.

1244
magic method trong lập trình PHP

Bài viết này mình sẽ giới thiệu với các bạn 7 magic method trong lập trình PHP mà bất cứ lập trình viên PHP nào cũng nên biết. Cùng mình bắt đầu khám phá nhé!

Magic Method trong lập trình PHP là gì?

Magic method trong lập trình PHP là những phương thức rất đặc biệc trong PHP vì nhiệm vụ của nó là bắt một sự kiện (event) nào đó khi chúng ta thao tác tới đối tượng.

magic method trong lập trình PHP

Và vì nó có tính đặc biệt nên bạn dễ dàng nhận biết nó qua hai dấu gạch dưới (__), nghĩa là tất cả các phương thức Magic methods đều có tên bắt đầu bằng hai dấu gạch dưới.

Các Magic Method trong lập trình PHP

__construct()

PHP construct là phương thức tự đông được gọi đầu tiên sau khi đối tượng được khởi tạo. Mỗi class có 1 contructor . Nếu bạn không khai báo nó, thì sẽ có 1 hàm tạo mặc định không có đối số và nội dung được trống trong class.

Cách sử dụng:

Phương thức construct thường được sử dụng để thiết lập các giá trị khỏi tạo. Ví dụ thiết lập các giá trị cho các biến thành viên khi khởi tạo đối tượng.

Cú pháp khai báo construct

Chú ý: chỉ một constructor có thể được khai báo trong cùng một lớp.

Ví dụ:

Tạo $Person1 không có tham số.

Tạo $Person2 với tham số "Jams".

Tạo $Person3 với 3 tham số.

__destruct()

Bây giờ chúng ta đã biết hàm construct là gì, và destruct thì ngược lại.

Destructor cho phép bạn thực hiện một số thao tác trước khi hủy đối tượng, chẳng hạn như đóng file, làm trống tập kết quả,…

Destructor là một tính năng mới được giới thiệu trong PHP5.

Định dạng khai báo của hàm hủy tương tự như của hàm tạo construct(), có nghĩa là desturation() cũng được bắt đầu bằng hai dấu gạch dưới và tên của hàm hủy cũng được cố định.

Cách khai báo

Chú ý Destruct không có tham số.

Cách sử dụng

Nói chung, destruct không phổ biến lắm trong PHP. Đây là một phần tùy chọn của một class, thường được sử dụng để hoàn thành một số nhiệm vụ dọn dẹp trước khi huỷ đối tượng.

Dưới đây là một ví dụ về việc sử dụng hàm hủy:

kết quả của hàm trên là:

__call()

Phương pháp này có hai tham số. Tham số đầu tiên function_name sẽ tự động nhận tên phương thức không xác định, trong khi các đối số thứ hai sẽ nhận được nhiều đối số của phương thức dưới dạng một mảng.

Cách khai báo

Khi một phương thức không xác định được gọi trong một chương trình, phương thức call() sẽ được gọi tự động.

Chúng ta sẽ được kết quả:

__get()

Khi bạn cố gắng truy cập một thuộc tính riêng của một đối tượng bên ngoài trong một chương trình, chương trình sẽ đưa ra một ngoại lệ và kết thúc thực hiện. Chúng ta có thể sử dụng phương thức get() để giải quyết vấn đề này. Nó có thể nhận được giá trị của tài sản riêng của đối tượng bên ngoài đối tượng. Đây là một ví dụ:

Kết quả là:

__set()

Phương thức set ($ property, $ value) được sử dụng để đặt thuộc tính riêng của đối tượng. Khi một thuộc tính không xác định được gán, phương thức set () sẽ được kích hoạt và các tham số được truyền là tên và giá trị thuộc tính được đặt.

Ta có kết quả là:

__isset()

Trước khi sử dụng phương thức __isset(), trước tiên hãy để tôi giải thích việc sử dụng phương thức isset(). Phương thức isset() chủ yếu được sử dụng để xác định xem biến có được đặt hay không.

Nếu bạn sử dụng phương thức isset () bên ngoài đối tượng, có hai trường hợp:

  • Tham số là thuộc tính công cộng: bạn có thể sử dụng phương thức isset () để xác định xem thuộc tính có được đặt hay không.
  • Tham số là thuộc tính riêng tư: phương thức isset () sẽ không hoạt động.

Vậy, đối với tài sản tư nhân, có cách nào để biết nếu nó được thiết lập không? Tất nhiên, miễn là chúng ta định nghĩa một phương thức __isset () trong một class, chúng ta có thể sử dụng phương thức isset () bên ngoài lớp để xác định xem thuộc tính riêng tư có được đặt hay không.

Khi gọietetet () hoặc rỗng () trên thuộc tính không xác định hoặc không thể truy cập, phương thức __isset () sẽ được gọi.

Đây là một ví dụ:

Ta được kết quả là:

__unset()

Tương tự như phương thức __isset(), phương thức __unset() được gọi khi phương thức unset() được gọi trên một thuộc tính không xác định hoặc không thể truy cập. Đây là một ví dụ:

Kết quả:

Xem thêm các Magic method và Class aliases trong PHP.

Tổng kết

Bài viết được lầy từ nguồn https://www.tutorialdocs.com/article/16-php-magic-methods.html

Trên đây là một số magic method trong lập trình PHP mà các lập trình viên có thể quan tâm. Hy vọng các bạn sẽ hiểu hơn về magic method trong lập trình PHP thông qua bài viết này.

Xem thêm việc làm PHP Developers hot nhất tại TopDev

TopDev via viblo